带有-all的SPF包含指令〜all?

我想更新和简化我的域名的SPFlogging。 不幸的是, http://www.openspf.org/SPF_Record_Syntax目前还不清楚。

我的域使用一个MX中继接收和发送。 SPF规则就像这样简单v=spf1 mx -all 。 这将禁止发送任何其他来源的邮件。

我遇到的问题是一个用户使用它的提供者(belgacom.be)进行传出邮件转发。 提供者当前的SPF规则如下: v=spf1 mx include:ispmail.spf.secure-mail.be include:bgc.spf.secure-mail.be include:bgcpartners.spf.secure-mail.be ~all

我很想把我的SPF规则定义为v=spf1 mx include:belgacom.be -all ,但不清楚包含的SPF规则中的~all都会做什么。 belgacom.be的规则中包含的规则也有一个。 包括规则中的~all将被视为一个匹配,而我-all将被忽略?

编辑 :findtesting工具http://www.kitterman.com/spf/validate.html 。 通过添加include:belgacom.be我得到Permanent Error SPF Permanent Error: Too many DNS lookups 。 关于包括~all的问题仍然是开放的。

SPF中的include机制有点用词不当,因为它实际上并没有将引用logging的内容包含到主logging中。

相反,被引用的logging被单独评估,其pass / fail结果被重新解释为include matchnot match (不再pass / fail !)。
(有关所有情况,请参阅SPF规范的include部分中的转换表。)

因此,就像其他机制一样,它是include的可选限定符前缀(default + ),它决定了机制匹配时的实际含义。

简单的不include例子:

  • ip4:192.0.2.1 (aka +ip4:192.0.2.1 )表示如果客户端的IPv4地址是192.0.2.1 ,则结果为pass

  • -ip:192.0.2.1表示如果客户端的IPv4地址是192.0.2.1 ,那么结果是fail

include例子:

  • include:foo.example.com (aka +include:foo.example.com )意味着如果foo.example.com SPFlogging的评估结果为pass ,这意味着include是一个匹配项,所以结果是根据这个include的限定符设置,因此pass
  • -include:foo.example.com意味着如果-include:foo.example.com上SPFlogging的评估结果为pass ,这意味着include是一个匹配项,所以根据这个include的限定符设置结果,因此fail