我想更新并简化我的域名的 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
这include
SPF 中的机制有点用词不当,因为它实际上并没有将引用记录的内容包含在主记录中。
相反,引用的记录被单独评估,其pass
结果fail
被重新解释为include
amatch
或 a not match
(不再是pass
/ fail
!)。
(见include
SPF 规范部分适用于所有情况。
因此,就像其他机制一样,可选的限定符前缀(默认+
)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.com
为pass
,则意味着include
匹配,因此结果根据此 的限定符来设置include
,因此pass
。-include:foo.example.com
意味着如果 处的 SPF 记录的评估结果foo.example.com
为pass
,则表示包含项匹配,因此结果根据此 的限定符进行设置include
,因此fail
。