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

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

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

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

注意

在以下过程中,对 DNS 记录的引用可以指向 CNAME 记录或 TXT 记录,具体取决于您使用的 DKIM 的形式。Easy DKIM 使用 CNAME 记录,而自带 DKIM (BYODKIM) 使用 TXT 记录。我们针对每个 Easy DKIMBYODKIM 提供了详细的验证程序。

常见的域验证问题

如果您尝试使用与您的 DNS 提供商一起验证 DKIM 域身份中的步骤验证域时遇到问题,请查看下面的可能原因和解决方案。

  • 您正在尝试验证不归您所有的域 – 您无法验证不归自己所有的域。例如,如果您想通过 Amazon SES 从 gmail.com 域上的地址发送电子邮件,您需要专门验证该电子邮件地址。您无法验证整个 gmail.com 域。

  • 您正在尝试验证私有域 – 如果 DNS 记录无法通过公共 DNS 解析,则无法验证域。

  • DNS 提供商不允许 DNS 记录名称中有下划线 – 少数 DNS 提供商不允许在记录名称中包含下划线 (_)。但是,DKIM 记录名称中的下划线是必需的。如果您的 DNS 提供商不允许您在记录名称中输入下划线,请联系提供商的客户支持团队以获取帮助。

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

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

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

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

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

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

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

检查域验证设置

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

这些说明中的命令在 Windows 7 中执行,我们使用的示例域为 ses-example.com,这是通过使用 CNAME 记录的 Easy DKIM 配置的。

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

验证您的域验证 CNAME 记录是否已发布到您的 DNS 服务器
  1. 通过采取以下步骤查找您的域的名称服务器。

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

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

      nslookup -type=NS <domain>

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

      nslookup -type=NS ses-example.com

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

  2. 通过执行以下步骤,验证 CNAME 记录是否已正确发布。请记住,Amazon SES 将生成三条 CNAME 记录以进行 Easy DKIM 身份验证,因此,需要分别对这三条记录重复以下过程。

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

      nslookup -type=CNAME <random string>_domainkey.<domain> <name server>

      在我们的 ses-example.com 示例中,如果我们在步骤 1 中找到的名称服务器名为 ns1.name-server.net,并且 SES 生成的 <random string>4hzwn5lmznmmjyl2pqf2agr3uzzzzxyz,则我们将键入以下内容:

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

      在我们的示例中,我们正在 4hzwn5lmznmmjyl2pqf2agr3uzzzzxyz_domainkey.ses-example.com 下寻找值为 4hzwn5lmznmmjyl2pqf2agr3uzzzzxyz.dkim.amazonses.com 的 CNAME 记录。如果记录已正确发布,我们希望命令具有以下输出:

      4hzwn5lmznmmjyl2pqf2agr3uzzzzxyz_domainkey.ses-example.com canonical name = "4hzwn5lmznmmjyl2pqf2agr3uzzzzxyz.dkim.amazonses.com"

常见电子邮件验证问题

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

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

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

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