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

时间:2018-03-08 13:01:33

标签: amazon-web-services amazon-s3 aws-lambda amazon-ses

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

1 个答案:

答案 0 :(得分:1)

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

  1. 从S3获取文件对象到内存
  2. 使用文本正文和文件附件构建多部分MIME邮件
  3. 通过SES发送原始邮件
  4. 第1步是将S3.getObject与适当的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>);
    

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