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

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

我想更新并简化我的域名的 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.be我得到Permanent Error SPF Permanent Error: Too many DNS lookups。关于包含的问题~all仍然悬而未决。

答案1

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(又名+include:foo.example.com)的意思是,如果 处的 SPF 记录的评估结果foo.example.compass,则意味着include匹配,因此结果根据此 的限定符来设置include,因此pass
  • -include:foo.example.com意味着如果 处的 SPF 记录的评估结果foo.example.compass,则表示包含项匹配,因此结果根据此 的限定符进行设置include,因此fail

相关内容