如果我的域在 Amazon SES 中陷入“等待验证”状态或“验证失败”状态,该怎么办?
上次更新时间:2020 年 7 月 10 日
我在域的 DNS 服务器中添加了一条 TXT 记录,该记录与我想要在 Amazon Simple Email Service (Amazon SES) 上进行验证的域的指定名称和值匹配。但是,Amazon SES 验证状态仍然处于“等待验证”,或处于“验证失败”状态。如何修复此问题?
简短描述
Amazon SES 域可能会因下面一个或多个原因陷入“等待验证”或“验证失败”状态:
- TXT 记录含有多余的字符或有字符缺失。
- 您的 DNS 提供商将顶级域自动添加到了 DNS 记录的末尾。
- TXT 记录尚未添加到委派的名称服务器。
确认您的记录没有任何上述问题后,您可以在 Amazon SES 上重试域名验证。
解决方法
检查 TXT 记录是否含有多余的字符或有字符缺失
使用 dig 或 nslookup 之类的 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
查看 dig 或 nslookup 命令的输出。例如,以下输出显示了多余的字符(空格):
$ 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 记录上运行 dig 或 nslookup 之类的 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 记录是否尚未添加到委派的名称服务器
使用 dig 或 nslookup 之类的 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 上重新尝试域验证。
当状态为“等待验证”时,遵照以下步骤重新尝试域验证:
- 打开 Amazon SES 控制台。
- 从导航栏的 AWS 区域选择器中选择您的域所在的区域。
- 从域身份列表中选中陷入“等待验证”状态的域。 然后选择移除。
- 在移除身份对话框中,选择是,删除身份。
- 选择验证新域。然后,重新输入陷入“等待验证”状态的域。
- 选择验证此域。
- 等待域的验证状态变为“已验证”。
当状态为“失败”时,遵照以下步骤重新尝试域验证:
- 打开 Amazon SES 控制台。
- 从导航栏的 AWS 区域选择器中选择您的域所在的区域。
- 从域的列表中,选择验证状态为“失败”的域。
- 选择重试。
- 等待域的验证状态变为“已验证”。