Amazon SES 电子邮件发送错误 - Amazon Simple Email Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon SES 电子邮件发送错误

本主题介绍您在通过 Amazon SES 发送电子邮件时可能遇到的各种类型的电子邮件发送错误。如果您尝试通过 Amazon SES 发送电子邮件且调用 Amazon SES 失败,Amazon SES 将向您的应用程序返回错误消息,并且不会发送电子邮件。您看到此错误消息的方式取决于您调用 Amazon SES 的方式。

  • 如果您直接调用 Amazon SES API,查询操作将返回错误。该错误可能是 MessageRejectedAmazon Simple Email Service API 参考常见错误主题中指定的错误之一。

  • 如果您使用支持异常的编程语言的 AWS SDK 调用 Amazon SES,Amazon SES 可能引发异常。异常的类型取决于软件开发工具包和错误。例如,异常可以是 Amazon SES MessageRejectedException(实际名称根据 SDK 而异),也可以是一般 AWS 异常。无论是哪种类型的异常,异常中的错误类型和错误消息将为您提供更多信息。

  • 如果您通过 SMTP 接口调用 Amazon SES,您遇到错误的方式取决于应用程序。某些应用程序可能会显示特定的错误消息,而其他应用程序则可能不会显示。有关 Amazon SES 返回的 SMTP 响应代码的列表,请参阅由 Amazon SES 返回的 SMTP 响应代码

注意

当您调用 Amazon SES 发送电子邮件失败时,您无需为该电子邮件付费。

当您尝试发送电子邮件时,可能会导致 Amazon SES 返回错误的 Amazon SES 特定问题的类型如下。这些错误是一般 AWS 错误之外的错误,如《Amazon Simple Email Service API 参考》常见错误主题中所指定的 MalformedQueryString

  • 电子邮件地址未经验证。以下身份无法签入区域 regionidentity1identity2identity3 – 您正在尝试从未通过 Amazon SES 验证的电子邮件地址或域发送电子邮件。此错误可能发生于“From”、“Source”、“Sender”或“Return-Path”地址。如果您的账户仍位于 Amazon SES 沙盒中,您还必须验证每个收件人电子邮件地址,但 Amazon SES 邮箱模拟器提供的收件人除外。如果 Amazon SES 无法显示所有失败的身份,错误消息将以省略号结束。

    注意

    Amazon SES 在多个 AWS 区域中具有终端节点,并且每个 AWS 区域 的电子邮件地址验证状态是不同的。您必须为要使用的 AWS 区域 中的每个发件人完成验证过程。

  • Account is paused (账户已暂停) – 已暂停您的账户发送电子邮件的功能。您仍然可以访问 Amazon SES 控制台并执行大多数操作。但是,如果您尝试发送电子邮件,则会收到此消息。

    如果我们暂停了您的账户发送电子邮件的功能,将自动将通知发送到与您的 AWS 账户 关联的电子邮件地址。有关更多信息,请参阅 Amazon SES 发送审核流程常见问题

  • Throttling (限制) – 您的应用程序可能尝试每秒发送了过多的邮件,或者您可能在过去 24 小时内发送了过多的电子邮件。在这些情况下,错误消息可能类似于以下示例:

    • Daily message quota exceeded (已超出每日邮件发送配额) – 您已超出在 24 小时内允许发送的最大邮件数量。如果您已超出每日配额,您必须等到下一个 24 小时时段内,然后才能发送更多电子邮件。

    • Maximum sending rate exceeded (已超出最大发送速率) – 您尝试每秒发送的电子邮件数已超过允许的最大发送速率。如果您已超出发送速率,您可以继续发送电子邮件,但需要降低发送速率。有关更多信息,请参阅 AWS 消息收发和目标博客中的 How to handle a "Throttling - Maximum sending rate exceeded" error

    • Maximum SigV2 SMTP sending rate exceeded (超出最大 SigV2 SMTP 发送速率) – 您正在尝试使用 2019 年 1 月 10 日之前创建的 SMTP 凭证发送邮件;您的 SMTP 凭证是使用旧版本的 AWS 签名创建的。出于安全考虑,您应删除在此日期之前创建的凭证,并将其替换为较新的凭证。您可以使用 IAM 控制台删除较早的凭证。有关创建凭证的更多信息,请参阅 获取亚马逊SESSMTP凭证

    您应定期监视您的发送活动,以了解您离发送配额还有多远。有关更多信息,请参阅 监控您的 Amazon SES 发送配额。有关发送配额的基本信息,请参阅管理您的 Amazon SES 发送限制。有关如何提高发送配额的信息,请参阅提升您的 Amazon SES 发送配额

    重要

    如果说明限制错误的错误文本与您超出每日配额或最大发送速率无关,则可能存在导致降低发送功能的系统级问题。有关服务状态的信息,请转至 AWS Service Health Dashboard

  • 未指定收件人 – 没有提供收件人。

  • There are non-ASCII characters in the email address (电子邮件地址中有非 ASCII 字符) – 电子邮件地址字符串必须是 7 位 ASCII 字符。如果您希望向或从某个地址的域部分中包含 Unicode 字符的电子邮件地址发送邮件,则必须使用 Punycode 对域进行编码。不允许在电子邮件地址的本地部分 (@ 符号前面的部分) 中使用 Punycode,也不允许在“易记发件人”名称中使用。如果您想要在“易记发件人”名称中使用 Unicode 字符,您必须使用 MIME encoded-word 语法编码“易记发件人”名称,如使用 Amazon SES API v2 发送原始电子邮件中所述。有关 Punycode 的更多信息,请参阅 RFC 3492

  • Mail FROM domain is not verified (发件人域未验证) – Amazon SES 无法读取使用指定 MAIL FROM 域所需的 MX 记录。有关设置自定义 MAIL FROM 域的信息,请参阅 使用自定义 MAIL FROM 域

  • Configuration set does not exist (配置集不存在) – 您指定的配置集不存在。配置集是可选参数,您可以使用它来发布电子邮件发送事件。有关更多信息,请参阅 使用 Amazon SES 事件发布监控电子邮件发送