问题:无法从域SPF Record (TXT)
的DNS条目中检索到我的zwischengas.com
在我的DNS条目中,我有一行SPF记录(作为TXT条目):
@ IN TXT "v=spf1 ip4:188.a.b.c ip4:xyz/22
ip4:xyz/24 ip4:xyz/21 ip4:xyz/24 ip4:xyz/24" "ip4:xyz ip4:xyz/22
ip4:xyz ip4:xyz/29 ip4:xyz/29 ip4:xyz/28" "ip4:xyz/24 ip4:xyz/24 a mx
?all"
我有问题,这个SPF记录无法找到,我也不知道为什么。 根据RFC,建议将一个非常长的行分成多个字符串,以保持所有子字符串小于255个字符。
我的域名是zwischengas.com,邮件服务器的IP是188.a.b.c,有人知道吗?
我尝试了这些测试没有成功:
host -t txt zwischengas.com
spfquery -ip-address 188.a.b.c -m test@zwischengas.com -h zwischengas.com
使用在线工具进行的测试也没有成功:
Google Mail(gmail.com)也无法检索我的SPF记录(根据原始邮件标题部分):
Received-SPF: neutral (google.com: 188.a.b.c is neither permitted
nor denied by best guess record for domain of
noreply1@zwischengas.com) client-ip=188.a.b.c;
答案 0 :(得分:6)
工作解决方案
您可以通过调用
来测试SPF记录的正确性host -t txt myhost.com
简单的SPF记录可能如下所示:
@ IN TXT "v=spf1 ip4:244.11.23.13 a mx ?all"
如果您依次添加IP,则可能会收到来自DNS服务器的错误消息,说明该字符串太长。
对此有效的解决方案是将" "
引入其中。
所以而不是
@ IN TXT "v=spf1 ip4:244.11.23.13 ip4:144.21.23.13 ip4:222.11.11.13 ip4:244.182.23.191 ip4:203.101.22.13 a mx ?all"
你会(例子):
@ IN TXT "v=spf1 ip4:244.11.23.13 ip4:144.21.23.13" " ip4:222.11.11.13 ip4:244.182.23.191" " ip4:203.101.22.13 a mx ?all"
" "
选项在相应的RFC中描述,并且被所有DNS服务器接受(实际发生的是," "
被删除,子串连接)。
但是如果你有20个IP怎么办?你最终得到的字符串远远超过允许的数量。你能做什么?
对此的解决方案称为:include
一个例子:
@ IN TXT "v=spf1 include:_spf1.myhost.com include:_spf2.myhost.com a mx ?all"
_spf1 IN TXT "v=spf1 ip4:244.11.23.13 ip4:144.21.23.13 a mx ?all"
_spf2 IN TXT "v=spf1 ip4:222.11.11.13 ip4:244.182.23.191 ip4:203.101.22.13 a mx ?all"
您可以使用N个层次结构扩展它。我希望这有帮助,因为我花了一些时间来找到它!!
答案 1 :(得分:0)
那是什么?“
@ IN TXT "v=spf1 ip4:188.a.b.c ip4:xyz/22 ip4:xyz/24 ip4:xyz/21 ip4:xyz/24 ip4:xyz/24" "ip4:xyz ip4:xyz/22 ip4:xyz ip4:xyz/29 ip4:xyz/29 ip4:xyz/28" "ip4:xyz/24 ip4:xyz/24 a mx ?all"
不应该只有一对“”,然后是:
@ IN TXT "v=spf1 ip4:188.a.b.c ip4:xyz/22 ip4:xyz/24 ip4:xyz/21 ip4:xyz/24 ip4:xyz/24 ip4:xyz ip4:xyz/22 ip4:xyz ip4:xyz/29 ip4:xyz/29 ip4:xyz/28 ip4:xyz/24 ip4:xyz/24 a mx ?all"