如何调试AWS SES收信中断问题?近5小时无法接收邮件至S3
AWS SES无法接收邮件并上传S3的排查步骤
一、先获取关键日志
- CloudWatch日志:SES接收邮件的日志可配置发送到CloudWatch。进入SES控制台,找到对应接收规则集,检查规则是否开启CloudWatch日志记录。若已开启,前往CloudWatch控制台找到对应日志组,筛选故障时段日志,用
Reject、Failed、Error等关键词搜索,定位具体错误原因。 - SES事件发布:在SES控制台「事件发布」模块,确认是否配置将接收事件(如接收失败、丢弃)发送到SNS或CloudWatch Events。查看这些事件源的故障时段数据,判断是邮件未到达SES,还是规则执行失败。
- S3访问日志:若怀疑上传S3环节出问题,开启目标存储桶的访问日志,查看故障时段的请求记录,确认是否存在SES上传请求被拒绝的情况(如权限不足、桶不存在、存储配额已满等)。
二、检查核心配置
- 接收规则集状态:确认故障时段对应的接收规则集处于活跃状态,排查是否存在误切换规则集或禁用规则的操作。
- 规则动作权限:检查接收规则中S3动作的配置:
- 验证存储桶名称是否正确;
- 确认SES关联的IAM服务角色拥有
s3:PutObject权限; - 检查存储桶策略是否允许SES服务主体写入,可通过IAM策略模拟器验证权限有效性。
- 域名MX记录:确认收件域名的MX记录正确指向SES接收端点(格式如
inbound-smtp.<区域>.amazonaws.com),排查故障时段是否存在DNS解析异常(如TTL到期未更新、DNS服务商故障),可通过nslookup/dig工具回溯解析状态(若有监控数据)。
三、确认AWS服务状态
查看AWS健康仪表板,检查故障时段对应区域的SES、S3服务是否存在计划性维护或突发故障,AWS侧的服务异常会在此处有明确事件通知。
四、验证邮件投递链路
若能复现故障,用测试邮箱向SES收件域名发送邮件,查看发送方的退信邮件,退信中的错误码(如550拒收、421暂时不可用)和描述可直接定位问题环节。
五、排查配额与信誉问题
- SES接收配额:在SES控制台「配额」页面,检查故障时段是否达到每小时接收邮件数上限,配额耗尽会导致无法接收邮件。
- 域名/IP信誉:查询收件域名及SES接收IP是否被列入公共反垃圾邮件列表,或被发送方服务商拉黑,可通过反垃圾邮件检测工具验证信誉状态。
内容的提问来源于stack exchange,提问作者Suraj Shrestha
相关产品推荐
相关产品推荐

