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

chm*_*ike 3 spf

我想更新和简化我的域的 SPF 记录。不幸的是,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,但尚不清楚~all包含的 SPF 规则将做什么。belgacom.be 规则包含的规则也有一个~all. 将~all在包括规则被视为匹配,将我的-all忽视?

编辑:找到测试工具http://www.kitterman.com/spf/validate.html。通过添加include:belgacom.beI get Permanent Error SPF Permanent Error: Too many DNS lookups。关于所包含的问题~all仍然是开放的。

Håk*_*ist 5

includeSPF 中的机制有点用词不当,因为它实际上并未将引用记录的内容包含到主记录中。

相反,引用的记录被单独评估,其pass/fail结果被重新解释为includeamatch或 a not match(不再是pass/ fail!)。
(有关所有情况,请参阅includeSPF 规范部分中的转换表。)

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

简单的非include例子:

  • ip4:192.0.2.1(又名+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) 意味着如果对 SPF 记录的评估foo.example.com结果为pass,这意味着include是匹配的,因此结果是根据 this 的限定符设置的include,因此pass
  • -include:foo.example.com意味着如果对 SPF 记录的评估foo.example.com结果为pass,这意味着包含是匹配的,因此根据 this 的限定符设置结果include,因此fail