You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何存储通过Amazon SES发送的完整邮件内容(含正文及附件)

如何在Amazon SES中存储完整邮件内容(含正文和附件)

首先得给你明确一点:Amazon SES自带的事件通知(包括你配置的Elasticsearch集成)本来就不会保存完整的邮件内容——它只记录发送事件的元数据(收件人、主题、发送时间这类信息),这就是你现在在Kibana里看不到正文和附件的核心原因。要实现类似Gmail已发送邮件的存档功能,你得在邮件发送流程里额外加一步来保存完整内容,下面是几个实用的方案:

方案1:发送前自行存储完整邮件

这是最直接省心的方式,毕竟你是批量发送,肯定有生成邮件(包括正文和PDF附件)的脚本或代码。在调用SES的SendEmail或SendRawEmail接口之前,先把完整的邮件内容(推荐存原始MIME格式,因为它包含了所有内容和附件)保存到自己的存储服务里:

  • Amazon S3:把每封邮件以文件形式存在S3桶中,文件名用SES返回的messageId命名(比如010f015b5fffb7ec-21d56945-2b90-41c3-81b2-c0ef03a0994b2-000000.eml)。这样之后你可以通过Kibana里的messageId直接关联到对应的邮件文件。
    • 如果用SendRawEmail,直接把你准备好的原始MIME内容上传S3就行;如果用SendEmail,可以先把API参数转换成标准MIME格式再存储。
  • Amazon DynamoDB:如果邮件内容不大,也可以存在DynamoDB里,把messageId作为主键,邮件内容作为属性字段,方便快速查询。

之后你可以在Kibana里自定义一个链接模板,点击messageId就能跳转到S3的文件预览(浏览器大多能直接打开.eml文件查看正文和附件),或者自己做个简单的查询界面来关联查看。

方案2:用BCC+SES接收规则捕获存档

SES不光能发邮件,还能配置接收规则来捕获邮件。你可以搞个“自动回存”的机制:

  1. 注册一个专门的存档邮箱(比如ses-archive@yourcompany.com),确保这个域名已经在SES里完成验证,能接收邮件。
  2. 在批量发送邮件时,给这个存档邮箱加一个**BCC(密送)**地址。
  3. 配置SES的接收规则集,把发送到ses-archive@yourcompany.com的邮件自动存储到S3桶,还可以选择把邮件元数据同步到Elasticsearch,或者用Athena直接在S3里查询邮件。

这个方案的好处是不用大改发送脚本的核心逻辑,只要加个BCC就行,但需要额外配置SES的接收功能,适合不想动发送代码的场景。

方案3:结合Lambda触发关联存储内容

你可以给现有的SES配置集(就是你用来同步到ES的SentHistory)加一个Lambda触发,触发事件选Send:

  1. 写一个Lambda函数,当SES发送邮件成功后,它会收到包含messageId的事件通知。
  2. 结合方案1的思路:在发送邮件时,把完整邮件内容和messageId一起存在S3/DynamoDB里,然后Lambda函数收到事件后,把Elasticsearch里的记录和存储的邮件内容关联起来(比如在ES文档里加一个指向S3文件的字段)。

这里要注意:SES没有直接获取已发送邮件内容的API,所以必须提前把内容存好,Lambda只是做关联的工作。

几个关键注意点

  • 成本问题:S3存储成本极低,每周2000-4000封带PDF的邮件,花费几乎可以忽略;Lambda调用成本也非常低,完全不用担心预算。
  • 隐私合规:如果发票包含客户敏感信息,一定要开启存储加密——S3支持服务器端加密,DynamoDB也有加密选项,SES接收规则也能配置加密存储到S3。
  • 查询效率:如果用S3存储,可以开启S3 Inventory或者用Athena来批量查询;如果用Elasticsearch,可以把邮件正文的摘要同步到ES里,方便快速搜索。

最后给你个简单的流程示例:

  1. 批量脚本生成带PDF附件的MIME格式邮件。
  2. 调用SES的SendRawEmail发送,得到messageId。
  3. 把MIME内容以{messageId}.eml为文件名上传到S3。
  4. SES配置集把发送事件同步到Elasticsearch,里面包含messageId。
  5. 在Kibana里设置点击messageId跳转到S3对应的.eml文件,直接查看正文和附件。

这样就能完美实现类似Gmail已发送邮件的存档和查看功能了。

内容的提问来源于stack exchange,提问作者Derik0003

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 05:08:11