【问题标题】:How to attach a csv file to email using Mandrill?如何使用 Mandrill 将 csv 文件附加到电子邮件?
【发布时间】: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);
                  });

【问题讨论】:

    标签: node.js mandrill


    【解决方案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' 之外的任何垃圾,它也不会抱怨。但后者最多接受三个参数:编码、开始和结束
    猜你喜欢
    • 2013-02-19
    • 1970-01-01
    • 2021-03-17
    • 2021-01-08
    • 1970-01-01
    • 2011-04-29
    • 2011-05-07
    • 2020-01-14
    • 1970-01-01
    相关资源
    最近更新 更多