假设我有一条 SPF 记录,内容如下:
v=spf1 include:_foo.example.com ~all
假设_foo.example.com
有以下内容:
vspf1 ip4:1.1.1.1 -all
嵌套 spf 记录中的条目是否-all
优先?还是~all
父记录中的条目优先?
答案1
简而言之:~all
,但不是因为优先权。include
只能Pass
。
这在以下文档中有描述:include
机制:
事后看来,“include”这个名字选得不太好。只使用引用的 SPF 记录的评估结果,而不是表现得好像引用的 SPF 记录实际上包含在第一个记录中。例如,评估
-all
引用记录中的指令不会终止整体处理,也不一定会导致整体Fail
。(这种机制的更好名称应该是“if-pass”、“on-pass”等。)
换句话说,这不是优先级的问题,而是处理顺序的问题:如果include
不存在Pass
(不仅仅是因为 ,-all
还因为其中的其他任何原因),它就不能像 一样被用作Pass
,但它也不会导致整体问题Fail
。因此,它将回退到~all
原始 SPF 记录中的 。