2017-02-25 5 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'以外のゴミを指定しても、それは不平を言うことはありません。しかし、後者は、最大で3つの引数、つまりエンコーディング、開始と終了 –

関連する問題