如何使用 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 文件附加到电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 fast-csv npm 将新行或新行的数据(新行)附加到现有的 csv 文件

如何在 Python 中使用 Pandas 数据结构附加多个 CSV 文件

如何在 pyspark 中使用 df.write.csv 附加到 csv 文件?

如何在 Datagrip 中使用 PostgreSQL 查询导出附加 CSV 文件?

将缺失值附加到 CSV 文件

将缺失值附加到 CSV 文件