2017-02-25 68 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'以外的任何垃圾,它都不会抱怨。但后者至多需要三个参数:编码,开始和结束 –

相关问题