发件人政策框架

Sender Policy Framework

我工作的公司为其他公司进行电子邮件营销。我的任务是研究 SPF 并且我了解它的基本功能,但是当我深入研究它时提出了一个问题。 我的问题是,“-all”会覆盖“~all”吗?这是 Netflix 的示例(使用命令行完成): 这是我发送的第一个请求:

nslookup -q=TXT netflix.com

结果

"v=spf1 include:_spf_ipv4.netflix.com include:_spf.google.com include:amazonses.com include:netflix.hosted.strongview.com -all"

那么这个请求:

nslookup -q=TXT :_spf.google.com

结果:

"v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"

然后这个:

nslookup -q=TXT :_netblocks.google.com

结果:

"v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all"

_spf.google.com 的请求有“~all”,当上次请求

的“~all”时会发生什么

nslookup -q=TXT :_netblocks.google.com

会是“-all”吗? “-all”会覆盖“~all”吗?或者会忽略上次请求中的 ~all 吗?

包含机制的评估只会导致匹配或不匹配,因此包含记录中的 ~all/-all 不会覆盖原始记录中的所有机制。如果包含机制匹配,则整个检查将 return 基于该机制的限定符的结果(在您的情况下通过,因为默认限定符是 +)。

因此,如果包含的任何记录匹配,netflix.com 检查将 return 通过。如果 none 个包含匹配,它将 return 由于“顶部”记录中的 -all 而失败。

在 RFC 的第 5.2 节中有一个 table 解释了如何处理包含:https://www.rfc-editor.org/rfc/rfc7208#section-5.2