电子邮件地址和域验证问题 - Amazon Simple Email Service

这是 Amazon SES Classic 的用户指南。更新和新功能仅在新 Amazon SES 开发人员指南,我们建议使用。

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

电子邮件地址和域验证问题

要使用 Amazon SES 验证电子邮件地址或域,可使用 Amazon SES 控制台或 Amazon SES API 启动该过程。本节包含有可能帮助解决验证过程问题的信息。

常见电子邮件验证问题

  • 验证电子邮件未送达— 如果您完成在 Amazon SES 中验证电子邮件地址但在几分钟内没有收到验证电子邮件,请完成以下步骤:

    • 检查垃圾邮件或垃圾邮件文件夹中是否有要验证的电子邮件地址。

    • 确认您尝试验证的地址能够接收电子邮件。使用单独的电子邮件地址(例如您的个人电子邮件地址),将测试电子邮件发送到您要验证的地址。

    • CheckAmazon SES 控制台中已验证地址的列表。确保您尝试验证的电子邮件地址没有任何错误。

常见的域验证问题

如果您尝试使用在 Amazon SES 中验证域中的步骤验证域时遇到问题,请查看下面的可能原因和解决方案。

  • 您正在尝试验证您不拥有的域— 您无法验证您不拥有的域。例如,如果您希望通过 Amazon SES 从Gmail.com域中,您需要确认电子邮件地址。您无法验证整个 gmail.com 域。

  • 您的 DNS 提供商不允许在 TXT 记录名称中使用下划线— 某些 DNS 提供商不允许在域的 DNS 记录名称中包含下划线字符。如果提供商有此要求,可以省略 TXT 记录名称中的 _amazonses

  • 您的 DNS 提供商已将域名附加到 TXT 记录的末尾。— 某些 DNS 提供商会自动将您的域名附加到 TXT 记录的属性名称中。例如,如果您创建一个属性名称为 _amazonses.example.com 的记录,提供商可能会附加域名,最终的属性名称将为 _amazonses.example.com.example.com。要避免域名重复,您可以在创建 TXT 记录时在域名结尾添加句点。此步骤告知 DNS 提供商没有必要将域名附加到 TXT 记录。

  • 您的 DNS 提供商修改了 DNS 记录值— 某些提供商会自动修改 DNS 记录值以仅使用小写字母。Amazon SES 仅在检测到验证记录的属性值与您启动域验证流程时提供的值完全匹配时才验证您的域。如果域的 DNS 提供商将 TXT 记录值更改为仅使用小写字母,请与 DNS 提供商联系获取更多帮助。

  • 您需要多次验证同一个域— 您可能需要从不同区域发送或使用同一个域从多个 AWS 账户发送,因而需要多次验证您的域。如果 DNS 提供商不允许您拥有多条具有相同属性名称的 TXT 记录,您仍可以验证两个域。如果 DNS 提供商允许,可以将多个属性值分配到同一条 TXT 记录。例如,如果 DNS 由 Amazon Route 53 管理,可以按照以下步骤为同一条 TXT 记录设置多个值:

    1. 在 Route 53 控制台中,选择在验证第一个区域中的域时创建的 TXT 记录。

    2. Value (值) 框中,转到现有属性值的末尾,然后按 Enter。

    3. 添加附加区域的属性值,然后保存记录集。

    如果 DNS 提供商不允许向同一条 TXT 记录分配多个值,则可以在 TXT 记录属性名称中包含 _amazonses 验证域一次,然后从属性名称中删除 _amazonses 并再验证一次。此解决方案的缺点是只能对同一个域验证两次。

检查域验证设置

您可以使用以下过程检查您的 Amazon SES 域验证 TXT 记录已正确地发布到您的 DNS 服务器。此过程使用 nslookup 工具,目前支持的平台有 Windows 和 Linux。在 Linux 上,您也可以使用 dig

这些说明中的命令在 Windows 7 中执行,我们使用的示例域为 ses-example.com

在此过程中,您首先要查找适用于您的域的 DNS 服务器,然后查询这些服务器以查看 TXT 记录。您查询适用于您的域的 DNS 服务器,因为这些服务器包含适用于您的域的最新信息,这可能需要一定时间才会传播到其他 DNS 服务器。

验证您的域验证 TXT 记录已发布到您的 DNS 服务器

  1. 通过采取以下步骤查找您的域的名称服务器。

    1. 进入命令行。要进入 Windows 7 中的命令行,请选择 Start,然后键入 cmd。在基于 Linux 的操作系统中,打开终端窗口。

    2. 在命令提示符处,键入以下命令,其中 <domain> 是您的域。此操作将列出所有可用于您的域的名称服务器。

      nslookup -type=NS <domain>

      如果您的域为 ses-example.com,此命令将类似于:

      nslookup -type=NS ses-example.com

      命令的输出将列出可用于您的域的名称服务器。您将在下一步骤中查询这些服务器之一。

  2. 通过采取以下步骤,验证 TXT 记录已正确发布。

    1. 在命令提示符处,键入以下命令,其中 <domain> 是您的域,<name server> 是您在步骤 1 中找到的某个名称服务器。

      nslookup -type=TXT _amazonses.<domain> <name server>

      ses-example.com 示例中,如果我们在步骤 1 中找到的名称服务器名为 ns1.name-server.net,则键入以下内容:

      nslookup -type=TXT _amazonses.ses-example.com ns1.name-server.net
    2. 在命令输出中,验证后的字符串text = 与您在 Amazon SES 控制台的身份列表中选择域时看到的 TXT 值匹配。

      在本示例中,我们正在 _amazonses.ses-example.com 下寻找值为 fmxqxT/icOYx4aA/bEUrDPMeax9/s3frblS+niixmqk= 的 TXT 记录。如果记录已正确发布,我们希望命令具有以下输出:

      _amazonses.ses-example.com text = "fmxqxT/icOYx4aA/bEUrDPMeax9/s3frblS+niixmqk="