因此,我认为单个SPF条目必须符合255个字符,或使用include运算符将多个条目链接在一起形成链.但是,RFC 4408 3.1.3.具体说明在评估之前必须连接多个字符串 – 因此,IN TXT“v = spf1”“1.2.3.4 -all”必须与IN TXT“v = spf1 1.2.3.4 -all”相同.值得注意的是,这允许任意大的SPF记录,并且包括成为包括其他人管理的SPF记录的工具.
这是对规范的正确解释吗?更重要的是,当前的邮件服务器是否会尊重这种多字符串类型的TXT记录?
解决方法
是的,你正确地解释它.我最近处理过这个问题.
这篇文章对我很有帮助:
Can I have a TXT or SPF record longer than 255 characters?
这个概念在实践中的一个值得注意的例子是截至2016年2月25日的cisco.com的SPF记录:
> ;; QUESTION SECTION: ;cisco.com. IN TXT > > ;; ANSWER SECTION: cisco.com. 12775 IN TXT > "926723159-3188410" cisco.com. 12775 IN TXT > "v=spf1 ip4:173.37.147.224/27 ip4:173.37.142.64/26 > ip4:173.38.212.128/27 ip4:173.38.203.0/24 ip4:64.100.0.0/14 > ip4:72.163.7.160/27 ip4:72.163.197.0/24 ip4:144.254.0.0/16 > ip4:66.187.208.0/20 ip4:173.37.86.0/24" " ip4:64.104.206.0/24 > ip4:64.104.15.96/27 ip4:64.102.19.192/26 ip4:144.254.15.96/27 > ip4:173.36.137.128/26 ip4:173.36.130.0/24 mx:res.cisco.com > mx:sco.cisco.com ~all" cisco.com. 12775 IN TXT > "MS=ms65960035"
正如您已经指出的那样,只需确保记录记录中的空格即可.
另外,请记住,您需要在SPF RFC中将记录中的DNS查找次数限制为10:
SPF implementations MUST limit the number of mechanisms and modifiers that do DNS lookups to at most 10 per SPF check,including any lookups caused by the use of the “include” mechanism or the “redirect” modifier. If this number is exceeded during a check,a PermError MUST be returned.