AWS SES + S3:从 S3 发送带有附件的电子邮件

Pra*_*rge 5 amazon-s3 amazon-web-services amazon-ses aws-lambda

我正在使用 AWS SES 服务向我的客户发送电子邮件,我想知道是否有任何解决方案可以使用 SES 和 Lambda 函数将文件直接附加到我的电子邮件中。我做了一项研究,最终找到了建议包含 S3 文件链接的解决方案,而不是按原样附加文件。我想附加来自 SE 的文件,该文件可以从电子邮件本身下载。不是附件的链接或引用。

Joe*_*sca 6

正如上面评论中提到的,没有办法通过 SES 自动从 S3“直接”发送文件。听起来您需要编写一个执行以下步骤的 Lambda 函数:

  1. 从 S3 获取文件对象到内存中
  2. 使用文本正文和文件附件构建多部分 MIME 消息
  3. 通过 SES 发送您的原始消息

S3.getObject第 1 步是使用适当的Bucket/参数的简单问题Key

我不知道您使用的是哪种语言,但在 Node.js 中,步骤 #2 可以使用 npm 包完成,mailcomposer如下所示:

const mailOptions = {
    from: 'no-reply@example.tld',
    to: 'whoever@example.tld',
    subject: 'The Subject Line',
    text: 'Body of message. File is attached...\n\n',
    attachments: [
        {
            filename: 'file.txt',
            content: fileData,
        },
    ],
};
const mail = mailcomposer(mailOptions);
mail.build(<callback>);
Run Code Online (Sandbox Code Playgroud)

步骤 3 也是一个简单的问题,使用您在步骤 2 中构建的消息设置的参数SES.sendRawEmailRawMessage.Data