我想验证我的域名是否为SES,我已经包含了SES给我的TXT记录。
然而,我已经尝试了2-3次,并且SES总是报告失败。我怀疑这是因为TXT值不正确。当我尝试dig _amazonses.domain.co txt
时,会产生
;; ANSWER SECTION:
_amazonses.domain.co. 300 IN TXT "v=spf1 include:_amazonses.com a mx ~all"
从我读到的内容来看,TXT值应该是SES给出的值吗?
我认为当前的TXT值是因为我的域名提供商有2条现有的TXT记录:
TXT <blank> v=spf1 include:_amazonses.com a mx ~all
TXT * v=spf1 include:_amazonses.com a mx ~all
我应该删除这些记录以使验证有效吗?
另请注意,我的A记录都指向我的EC2 IP。
A <blank> 1.2.3.4
A * 1.2.3.4
感谢您的回答。
答案 0 :(得分:0)
由于以下一种或多种原因,Amazon SES域验证可能会停留在“待验证”或“失败”验证状态:
在确认您的记录没有这些问题之后,您可以在Amazon SES上重试域验证。
检查TXT记录是否包含其他字符或缺少字符。 使用DNS工具(例如dig或nslookup)测试您的TXT记录。在macOS或Linux操作系统上,运行dig命令:
注意:在Amazon SES中用您的TXT记录名称替换_amazonses.example.com。
$ dig TXT _amazonses.example.com +short
在Windows操作系统上,运行nslookup命令。
在Amazon SES域上阅读完整的Amazon文章,由于以下一种或多种原因,验证可能停留在“待验证”或“失败”验证状态:
在确认您的记录没有这些问题之后,您可以在Amazon SES上重试域验证。
检查TXT记录是否包含其他字符或缺少字符。 使用DNS工具(例如dig或nslookup)测试您的TXT记录。在macOS或Linux操作系统上,运行dig命令:
注意:将_amazonses.example.com替换为Amazon SES中的TXT记录名称。
$挖TXT _amazonses.example.com + short
在Windows操作系统上,使用nslookup命令。
根据我的经验,请检查您的DNS提供商是否自动将根域添加到DNS记录的末尾。只需dig
,就不用您的域名,也可以不用TXT记录。
答案 1 :(得分:0)
首先,您需要确定在哪里进行输入。如果您在GoDaddy
购买了域名,但托管在1and1
中,而您却给了nameserver
中的1and1
,那么您将不得不在1and1
中添加这些详细信息DNS,而不是Godaddy
。
如果您在GoDaddy
购买了域名并在1and1
托管,但已将A
的记录从1and1
重定向到GoDaddy
,而不是{{1 }},则必须添加nameserver
。
在大多数情况下,在DNS中添加SES相关设置非常简单。只需添加SES给出的TXT名称和值即可。即使是DKIM设置。
但是并非所有服务器都如此。
给出SES字符串:
GoDaddy
您必须在GoDaddy DNS设置中输入TXT,仅记录以下内容:
_amazonses.yourdomain.com Pe82YD6rnCI0AXMHIZv8v0h/thYRZk97YCuQUA=
在1and1或VPSLink等中,您必须输入提供的全文。仅在GoDaddy中有所不同。它会添加域名本身。
答案 2 :(得分:-1)
要验证域,您需要没有SPF,而是亚马逊提供的自定义TXT记录。查看http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html
上的文档答案 3 :(得分:-1)
我发现2篇非常不错的文章,帮助我最终验证了我为域所需的所有记录:
这些在这里:
您可以使用以下过程检查您的Amazon SES域验证TXT记录是否已正确发布到DNS服务器。此过程使用nslookup工具,该工具可用于Windows和Linux。在Linux上,您也可以使用dig。
这些说明中的命令在Windows 7上执行,我们使用的示例域为ses-example.com。
在此过程中,您首先要找到为您的域服务的DNS服务器,然后查询这些服务器以查看TXT记录。您查询服务于域的DNS服务器,因为这些服务器包含您域的最新信息,这可能需要一些时间才能传播到其他DNS服务器。
要验证您的域验证TXT记录已发布到DNS服务器
Find the name servers for your domain by taking the following steps.
Go to the command line. To get to the command line on Windows 7, choose Start and then type cmd. On Linux-based operating systems, open a terminal window.
At the command prompt, type the following, where <domain> is your domain. This will list all of the name servers that serve your domain.
nslookup -type=NS <domain>
If your domain was ses-example.com, this command would look like:
nslookup -type=NS ses-example.com
The command's output will list the name servers that serve your domain. You will query one of these servers in the next step.
Verify that the TXT record is correctly published by taking the following steps.
At the command prompt, type the following, where <domain> is your domain, and <name server> is one of the name servers you found in step 1.
nslookup -type=TXT _amazonses.<domain> <name server>
In our ses-example.com example, if a name server that we found in step 1 was called ns1.name-server.net, we would type the following:
nslookup -type=TXT _amazonses.ses-example.com ns1.name-server.net
In the output of the command, verify that the string that follows text = matches the TXT value you see when you choose the domain in the Identities list of the Amazon SES console.
In our example, we are looking for a TXT record under _amazonses.ses-example.com with a value of fmxqxT/icOYx4aA/bEUrDPMeax9/s3frblS+niixmqk=. If the record is correctly published, we would expect the command to have the following output:
_amazonses.ses-example.com text = "fmxqxT/icOYx4aA/bEUrDPMeax9/s3frblS+niixmqk="
GoDaddy:
我有同样的问题。我从其他主机转移了我的域名。转移之后,我的Amazon SES域验证(TXT记录)和DKIM记录(CNAME)都不再得到验证-即使在完全按照我从以前的DNS主机输入到GoDaddy DNS区域的方式输入它们之后。
当我使用以下代码在命令行工具(Mac Terminal或Windows cmd)中执行DNS检查时:
nslookup -type = TXT _amazonses.yourdomain.com yournameserver.com
我收到以下结果:
**服务器找不到_amazonses.yourdomain.com:NXDOMAIN
正如我发现的(以及其他人提到的),这是因为GoDaddy将您的域附加到TXT Name条目的末尾。因此,如果您输入的TXT名称为:
_amazonses.yourdomain.com
它实际上将记录为:
_amazonses.yourdomain.com.yourdomain.com
(这意味着Amazon SES找不到记录-因为他们正在搜索_amazonses.yourdomain.com-因此无法对其进行验证)
您可以通过执行NSLOOKUP检查双域记录来验证这一点。为您的TXT记录:
nslookup -type = TXT _amazonses.yourdomain.com.yourdomain.com yournameserver.com
请确保将您的nameserver.com替换为您的实际名称服务器。查找您的名称服务器:
nslookup -type = NS yourdomain.com
如果您的域名已经重复,则应该返回类似以下内容的内容:
服务器:yournameserver.com 地址:12.12.12.12#53(IP地址)
_amazonses.yourdomain.com.yourdomain.com text =“ your_text_code_will_appear_here”
并搜索DKIM:
主机-t CNAME replace_this_with_your_DKIM_value._domainkey.yourdomain.com.yourdomain.com
其他论坛建议将句号“。”在域的末尾以防止GoDaddy重新自动添加您的域,但是我发现这不适用于GoDaddy。
相反,您必须仅从TXT名称和CNAME名称中删除您的域。而不是Amazon SES管理控制台建议的内容: TXT名称*:_amazonses.yourdomain.com
输入: TXT名称*:_amazonses
DKIM CNAME条目也是如此。代替: 名称:big_long_code_here._domainkey.yourdomain.com
输入以下内容: 名称:big_long_code_here._domainkey
值保持不变。我见过一些论坛,指出您必须输入用双引号(“”)括起来的值。但是我没有这样做,但效果很好-但是,我确实将我的gmail SPF记录TXT值括在双引号__(ツ)_ /¯中。
请等待一段时间,以使其传播,然后使用NSLOOKUP再次检查(这次不会重复两次您的域):
对于TXT记录:
nslookup -type = TXT _amazonses.yourdomain.com yournameserver.com
对于特定的CNAME(DKIM)记录:
主机-t CNAME replace_this_with_your_DKIM_value._domainkey.yourdomain.com
(将要检查的三个记录的每一个都替换为DKIM代码)。
或者,使用在线DNS检查工具(如https://dnschecker.org)查看您的更改是否开始在全球范围内传播(执行TXT搜索,在文本输入中输入_amazonses.yourdomain.com,或执行DKIM搜索通过输入
replace_this_with_your_DKIM_value._domainkey.yourdomain.com)。如果是这样,Amazon SES验证您的TXT和DKIM条目应该是一个时间问题。
这对我有用,希望对我有帮助-我已尝试为像我这样的人(那些真的不知道自己在做什么,却在学习中的人)简单地解释它。 干杯。
(p.s。亚马逊的“付费”支持无法向我提供此信息(我想每个DNS主机都略有不同),我不得不通过反复试验来做到这一点。)