2017-02-25 34 views
2

我有我試圖發送到作爲電子郵件的附件,但內容出來爲亂碼一個csv字符串。這是一個節點腳本。有任何想法嗎?如何附加CSV文件使用山魈發送電子郵件?

    // csv is a csv string 

       var message = { 
        "html": msg, 
        "subject": 'Test CSV Attachment', 
        "from_email": from, 
        "from_name": "Tester", 
        "to": [{ 
          "email": email 
          }], 
        "headers": { 
         "Reply-To": email 
        }, 
        "attachments": [{ 
         "type": 'text/csv', 
         "name": filename, 
         "content": csv 
        }], 
        }; 

        mandrill_client.messages.send({"message": message}, function(result) { 
        console.log('result NOTIFICATION! ', result); 
        }); 

回答

4

按照Mnadrill API的documentation,則需要對內容進行編碼以base64:

enter image description here

因此,修改以下...

"content": csv 

。 ..to:

"content": Buffer.from(csv).toString('base64') 
+0

工作!我以前試過csv.toString('base64'),失敗了。你能解釋一下這與你所做的有什麼不同嗎? – user3527354

+0

@ user3527354 https://cloud.githubusercontent.com/assets/1779189/23337067/3d1756fe-fc08-11e6-90da-12f3920ca44b.png我覺得不同的是調用'Object.prototype.toString()'V/S之間' buffer.toString()'。前者沒有任何爭論,即使你指定了除'base64'以外的任何垃圾,它都不會抱怨。但後者至多需要三個參數:編碼,開始和結束 –

相關問題