使用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)编码似乎无法正常工作(我得到了编码后的文本,但是我可以避免编码)
显然,第一点是我要解决的主要问题,但是如果您可以帮助其他两点,我将不胜感激:)
答案 0 :(得分:0)
RawMessage需要使用base64编码,而不是文件数据。
var params = { Destinations: [ RECEIVER ], RawMessage: { Buffer.from(Data).toString('base64') }, Source: SENDER };