如果我的域在 Amazon SES 中陷入“等待验证”状态或“验证失败”状态,该怎么办?

上次更新时间:2020 年 7 月 10 日

我在域的 DNS 服务器中添加了一条 TXT 记录,该记录与我想要在 Amazon Simple Email Service (Amazon SES) 上进行验证的域的指定名称和值匹配。但是,Amazon SES 验证状态仍然处于“等待验证”,或处于“验证失败”状态。如何修复此问题?

简短描述

Amazon SES 域可能会因下面一个或多个原因陷入“等待验证”或“验证失败”状态:

  • TXT 记录含有多余的字符或有字符缺失。
  • 您的 DNS 提供商将顶级域自动添加到了 DNS 记录的末尾。
  • TXT 记录尚未添加到委派的名称服务器。

确认您的记录没有任何上述问题后,您可以在 Amazon SES 上重试域名验证。

解决方法

检查 TXT 记录是否含有多余的字符或有字符缺失

使用 dignslookup 之类的 DNS 工具测试您的 TXT 记录。在 macOS 或 Linux 操作系统中,运行 dig 命令:

注意:_amazonses.example.com 替换为 Amazon SES 中的 TXT 记录名称。 

$ dig TXT _amazonses.example.com +short

在 Windows 操作系统上,运行 nslookup 命令:

注意:_amazonses.example.com 替换为 Amazon SES 中的 TXT 记录名称。

C:\>nslookup -type=TXT _amazonses.example.com

查看 dignslookup 命令的输出。例如,以下输出显示了多余的字符(空格): 

$ dig TXT _amazonses.example.com +short
" 9kFNbWDLzxvzYgPg1lUSTkUudKR1dDtzzCPuWmYhZro= "

再例如,以下输出显示的 TXT 记录缺少“=”字符: 

C:\>nslookup -type=TXT _amazonses.example.com
Server: dns.example.com
Address:  192.168.1.1

Non-authoritative answer:
_amazonses.example.com   text = "9kFNbWDLzxvzYgPg1lUSTkUudKR1dDtzzCPuWmYhZro"

当您创建 TXT 记录时,最佳实践是直接从 Amazon SES 控制台复制值。确保包含所提供的确切值。请勿排除任何必要的字符(例如,“=”),且不要包含任何多余的字符,例如空格。

检查您的 DNS 提供商是否将顶级域自动添加到了 DNS 记录的结尾

有些 DNS 提供商会将顶级域自动附加到 DNS 记录的末尾。例如,如果您输入 _amazonses.example.com,有些 DNS 提供商可能会将 .example.com 附加到记录名称中,从而将记录名称更改为 _amazonses.example.com.example.com

要检查顶级域名是否被复制到 DNS 记录中,请在复制了顶级域的 TXT 记录上运行 dignslookup 之类的 DNS 工具。在 macOS 或 Linux 操作系统中,运行 dig 命令:

$ dig TXT _amazonses.example.com.example.com +short
"9kFNbWDLzxvzYgPg1lUSTkUudKR1dDtzzCPuWmYhZro="

在 Windows 操作系统上,运行 nslookup 命令:  

C:\>nslookup -type=TXT _amazonses.example.com.example.com
Server: dns.example.com
Address:  192.168.1.1

Non-authoritative answer:
_amazonses.example.com   text = "9kFNbWDLzxvzYgPg1lUSTkUudKR1dDtzzCPuWmYhZro="

如果该命令返回了您创建的 TXT 记录的值,则说明 DNS 提供商在 DNS 记录的名称字段末尾添加了顶级域。要解决此问题,请编辑 TXT 记录并从您为名称字段输入的文本中移除顶级域。例如,将 _amazonses.example.com 替换为 _amazonses

检查 TXT 记录是否尚未添加到委派的名称服务器

使用 dignslookup 之类的 DNS 工具获取您尝试在 Amazon SES 上进行验证的域的委派名称服务器。在 macOS 或 Linux 操作系统中,运行 dig 命令:

注意:example.com 替换为您尝试在 Amazon SES 上进行验证的域。

$ dig -t NS example.com
;; ANSWER SECTION:
example.com.   172800  IN    NS    ns1.example.com.
example.com.   172800  IN    NS    ns2.example.com.
example.com.   172800  IN    NS    ns3.example.com.

在 Windows 操作系统上,运行 nslookup 命令:

注意:example.com 替换为您尝试在 Amazon SES 上进行验证的域。 

C:\>nslookup -type=NS example.com
Non-authoritative answer:
example.com     nameserver = ns3.example.com
example.com     nameserver = ns4.example.com
example.com     nameserver = ns1.example.com
example.com     nameserver = ns2.example.com

然后,转至您创建 TXT 记录所在的 DNS 服务,以获取名称服务器。例如,如果您在 Amazon Route 53 中创建 TXT 记录,则打开 Route 53 控制台。当您在 Route 53 控制台中查看 TXT 记录时,名称服务器出现在列中。

如果您想要验证的域的委派名称服务器与具有 TXT 记录的名称服务器不匹配,则执行以下操作之一:

  • 将 TXT 记录添加到委派的名称服务器中。
  • 将具有 TXT 记录的名称服务器配置为您的 DNS 注册商的新委派名称服务器。

在 Amazon SES 上重新尝试域验证

更正记录上的任何问题后,您可以在 Amazon SES 上重新尝试域验证。

当状态为“等待验证”时,遵照以下步骤重新尝试域验证:

  1. 打开 Amazon SES 控制台
  2. 从导航栏的 AWS 区域选择器中选择您的域所在的区域。
  3. 域身份列表中选中陷入“等待验证”状态的域。 然后选择移除
  4. 移除身份对话框中,选择是,删除身份
  5. 选择验证新域。然后,重新输入陷入“等待验证”状态的域。
  6. 选择验证此域
  7. 等待域的验证状态变为“已验证”。

当状态为“失败”时,遵照以下步骤重新尝试域验证:

  1. 打开 Amazon SES 控制台
  2. 从导航栏的 AWS 区域选择器中选择您的域所在的区域。
  3. 从域的列表中,选择验证状态为“失败”的域。
  4. 选择重试
  5. 等待域的验证状态变为“已验证”。

这篇文章对您有帮助吗?


您是否需要账单或技术支持?