为什么我无法从 Amazon SES 接收电子邮件?
上次更新时间:2020 年 9 月 22 日
我使用 Amazon Simple Email Service (Amazon SES) 发送了一封电子邮件,但我在收件箱里找不到消息。或者,我尝试使用 Amazon SES 发送电子邮件,但我收到错误。
解决方法
检查您的 Amazon SES 账户中是否存在发送问题
- 检查您的发送账户是否在 Amazon SES 沙盒中。然后,检查您尝试将电子邮件发送到的收件人是否是经过验证的电子邮件地址或域。如果您的发送账户在沙盒中,您只能将电子邮件发送至经过验证可用于 Amazon SES 的电子邮件地址或域。您可以创建一个请求,以将您的账户移动到生产模式中。如果 Amazon SES 批准您的请求,则您可以发送电子邮件至任何收件人。
- 检查您的账户的发送能力是否已暂停。如果 Amazon SES 让您的账户处于发送暂停状态,您必须解决导致暂停的问题,然后请求检查您的账户。
检查从电子邮件客户端至 Amazon SES 之间是否存在发送问题
- 查看您的电子邮件客户端是否有 Amazon SES 返回的任何错误消息。
- 如果 Amazon SES 返回“Maximum sending rate exceeded”(超过最大发送速率)或“Daily sending quota exceeded”(超过每日发送配额)错误消息,则您必须查看您账户的发送速率。
- 如果您使用电子邮件模版 (SendTemplatedEmail operation),则检查您的模板数据是否无效或缺少变量。如果模板数据的变量无效或缺失变量,则 Amazon SES 无法传输电子邮件。这称为渲染故障。有关更多信息,请参阅如何找出 Amazon SES 使用 SendTemplatedEmail 操作的电子邮件未能传输的原因?
- 如果您遇到简单邮件传输协议 (SMTP) 超时或连接问题,则对 TCP 连接和 SSL/TLS 协商进行问题排查。
- 审核并调试您的电子邮件发送应用程序,以了解有无任何可能导致发送问题的客户端错误。要确定您是否可能存在客户端问题,您可以测试与 Amazon SES SMTP 终端节点的连接。如果您的电子邮件客户端无法连接到终端节点,则继续对您的网络进行故障排查。
检查从 Amazon SES 到收件人域是否存在发送问题
- 验证您的电子邮件是否导致从收件人域发出的软退回或硬退回。为此,使用 Amazon Simple Notification Service (Amazon SNS) 设置退回通知。在退回通知内,检查 bounceType 和 bounceSubType 字段以了解有关造成退回原因的更多信息。
- 验证您的电子邮件发送是否存在延迟。为此,您可以将 Amazon SES 事件发布配置到 Amazon CloudWatch、Amazon Kinesis Data Firehose 或 Amazon SNS。要设置发送延迟通知,您必须使用 Amazon SES API V2 运行 UpdateConfigurationSetEventDestination 调用。
- 检查退回通知,以了解其中是否有状态代码为 554 的 SMTP 响应,及一条表示发送 IP 地址在 IP 黑名单之列的消息。这意味着您的电子邮件被拒绝,因为发件人 IP 地址在收件人电子邮件提供商使用的 IP 黑名单之列。请务必检查将 Amazon SES IP 地址从 IP 黑名单移除的策略。为避免使用列在 IP 黑名单上的 IP 地址,请考虑使用专用 IP 地址,以便您能对发件人声誉进行控制。
重要提示:因收件人端问题造成的退回仍然可能影响您的发送账户送达率。作为发件人,监控您的退回率和防止进一步退回很重要。如果您的账户退回率为 5% 或以上,则 Amazon SES 可能会对您的账户进行审查。如果您的退回率为 10% 或以上,Amazon SES 可能会暂停您的账户发送电子邮件的功能。
检查从收件人域到用户的收件箱是否存在发送问题
- 检查收件人的垃圾文件夹中是否有您使用 Amazon SES 发送的电子邮件。有多种因素可能会导致收件人的邮件服务器将电子邮件标记为垃圾邮件,例如内容筛选器或缺少电子邮件身份验证。有关更多信息,请参阅我使用 Amazon SES 发送的电子邮件为什么被标记为垃圾邮件?
- 确认您的电子邮件符合使用 Amazon SES 遵守 DMARC 中规定的指导原则。