0

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

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

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

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 点,我将不胜感激:)

4

1 回答 1

0

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

    var params = {
        Destinations: [ RECEIVER ],
        RawMessage: { Buffer.from(Data).toString('base64') },
        Source: SENDER
    };
于 2020-06-11T09:36:34.610 回答