如何通过Lambda接收邮件?AWS SES相关配置疑问
AWS SES 接收邮件到 Lambda 的最简方案及常见问题解答
核心差异:接收 vs 发送邮件的配置
接收邮件的配置流程完全不同于发送邮件:发送仅需验证身份(域名/邮箱)后调用SMTP/API即可;接收需要配置邮件路由(MX记录或转发)+ SES接收规则来触发Lambda。
你的具体问题解答
是否需要执行与发送邮件相同的配置步骤?
不需要。发送的核心是身份验证与发送权限,接收的核心是让SES能收到目标邮件,并配置规则触发Lambda,两者流程独立。验证域名身份还是仅验证邮箱?
分两种场景:- 若直接接收
dev@clientdomain.com的邮件:必须验证客户的clientdomain.com域名(单个邮箱验证无法让SES获取该域名的邮件接收权限)。 - 若用邮件转发方案:仅需验证你用来接收转发的域名/邮箱(比如你自己的已验证域名下的邮箱),无需验证客户的域名。
- 若直接接收
是否需要客户发布MX记录?
同样分场景:- 直接接收方案:需要客户在
clientdomain.com的DNS服务商处添加MX记录,指向SES的收件端点(例如inbound-smtp.us-east-1.amazonaws.com,权重设为10)。 - 转发方案:不需要客户修改DNS,仅需客户在Outlook的
dev@clientdomain.com邮箱中设置自动转发,将邮件转发到你指定的SES接收邮箱即可。
- 直接接收方案:需要客户在
最简实现方法推荐
方案1:邮件转发(无需客户改DNS,快速落地)
- 在你的AWS SES控制台中,验证一个你可控的域名(或邮箱),创建一个专门用于接收转发的邮箱(例如
ses-forward@your-domain.com)。 - 让客户登录Outlook的
dev@clientdomain.com邮箱,设置自动转发规则,将所有收到的邮件转发到ses-forward@your-domain.com。 - 在SES控制台创建接收规则集:
- 指定收件人为
ses-forward@your-domain.com; - 添加Lambda触发动作,配置Lambda的权限策略(允许SES服务调用该Lambda);
- 可选:开启S3存储邮件(方便调试)。
- 指定收件人为
- 在Lambda函数中解析邮件内容(SES会将邮件原始内容作为事件参数传入),提取原收件人、正文等信息进行处理。
方案2:直接接收(长期稳定,适合生产环境)
- 在AWS SES控制台开启邮件接收功能(注意:部分区域不支持,优先选择
us-east-1等支持区域)。 - 验证客户的
clientdomain.com域名(需客户配合添加DNS验证记录)。 - 让客户在
clientdomain.com的DNS服务商处添加MX记录,指向SES的收件端点(例如inbound-smtp.us-east-1.amazonaws.com,权重10)。 - 创建SES接收规则:
- 指定收件人为
dev@clientdomain.com; - 添加Lambda触发动作,配置对应权限;
- 完成后,发往
dev@clientdomain.com的邮件会直接触发Lambda处理。
- 指定收件人为
内容的提问来源于stack exchange,提问作者L Xandor
相关产品推荐
相关产品推荐

