如何使用 Mandrill 将 csv 文件附加到电子邮件?

Posted

技术标签:

【中文标题】如何使用 Mandrill 将 csv 文件附加到电子邮件?【英文标题】:How to attach a csv file to email using Mandrill? 【发布时间】:2017-07-15 23:50:16 【问题描述】:

我有一个 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);
                  );

【问题讨论】:

【参考方案1】:

根据Mnadrill API的documentation,需要对内容进行base64编码:

所以,修改以下...

"content": csv

...到:

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

【讨论】:

成功了!我之前尝试过 csv.toString('base64') 并且失败了。你能解释一下这与你所做的有什么不同吗? @user3527354 cloud.githubusercontent.com/assets/1779189/23337067/… 我认为区别在于调用 Object.prototype.toString() v/s buffer.toString() 。前者不接受任何参数,即使您指定除 'base64' 之外的任何垃圾,它也不会抱怨。但后者最多接受三个参数:编码、开始和结束

以上是关于如何使用 Mandrill 将 csv 文件附加到电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章