【问题标题】:How to send attachment using AWS SDK SES如何使用 AWS 开发工具包 SES 发送附件
【发布时间】:2020-09-30 05:08:51
【问题描述】:

我在使用 AWS 开发工具包 SES 时遇到了一些问题。

我有一个 Lambda,其目标是生成一个文件并以 csv 格式发送。

在创建了我的 AWS Lambda 并编写了获取数据的代码后,我检查了 Aws docs 以发送带有附件的电子邮件并编写了以下函数:

function sendEmail (textAttachment) {
        const SENDER = 'sender_email@domain.com';
        const RECEIVER = 'receiver_email@domain.com';

        let buff = new Buffer(textAttachment);
        let base64data = buff.toString('base64');

        let Data = `
            From: "Sender Name" ${SENDER}
            To: ${RECEIVER}
            Subject: "Activity export"
            Content-Type: text/plain; name="export.txt";
            Content-Disposition: attachment;filename="export.txt"
                creation-date="${new Date()}";
            Content-Transfer-Encoding: base64
            ${base64data}
        `
        var params = {
            Destinations: [ RECEIVER ],
            RawMessage: { Data },
            Source: SENDER
        };
        return ses.sendRawEmail(params).promise();
    }

不幸的是,即使我收到了电子邮件,我也遇到了不同的问题:

1) 整个文本都在正文中,而不是在附件中
2) 邮件没有主题(小问题)
3)编码似乎无法正常工作(我得到了编码的文本,但我可以避免编码)

显然第一点是我想解决的主要问题,但如果你能帮助其他 2 点我将不胜感激:)

【问题讨论】:

    标签: node.js amazon-web-services amazon-simple-email-service


    【解决方案1】:

    RawMessage 需要 base64 编码,而不是文件数据。

        var params = {
            Destinations: [ RECEIVER ],
            RawMessage: { Buffer.from(Data).toString('base64') },
            Source: SENDER
        };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 2020-07-03
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      相关资源
      最近更新 更多