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

AWS SES通过SNSAction推送至SNS时无法获取完整原始邮件怎么办

解决方法

你当前拿不到完整邮件内容的核心原因是SES SNS Action的默认通知编码配置仅返回邮件头,调整配置即可解决:

操作步骤

  • 进入AWS SES控制台,找到你配置的收件规则集,编辑对应规则下的SNS Action
  • 将「通知编码(Notification encoding)」选项从默认的UTF-8修改为Base64
  • 保存规则后等待配置生效即可

后续内容处理

配置调整完成后,SNS推送到你HTTPS端点的消息中会新增content字段,该字段为Base64编码的完整原始EML格式邮件:

  • 对content字段做Base64解码即可拿到完整原始邮件,包含所有收件人信息、邮件正文、附件等全部内容
  • 你需要的to地址可以直接从解码后EML的头部字段提取,也可以直接使用原有通知中commonHeaders下的to数组(该字段现有配置下即可正常获取)
  • 邮件正文可以借助通用的邮件解析库(如Python内置email库、Node.jsmailparser包等),直接从解码后的EML中提取text/plain(纯文本正文)或text/html(富文本正文)对应部分的内容,无需手动解析格式

备选方案(适合需长期存储邮件的场景)

如果不想处理Base64编码内容,你也可以在SES规则中先添加S3存储Action,将完整邮件存入S3桶,再触发SNS通知,通知中会携带对应S3对象的存储路径,你收到通知后再从S3拉取完整邮件文件即可,该方案需要额外配置SES对S3桶的写入权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:54:01