我已阅读文档,但我仍然不太清楚其中的区别。
我的理解是: 1) 包含:将允许为指定域列出的 IP,以及该域自己的 SPF 记录中列出的任何其他域
2) a:仅允许为指定域列出的 IP
正确吗?
再次尝试为其他试图将其放在一起的人提供答案,并基于OP可能引用的语法文档,open-spf.org“SPF记录语法”页面。
注:此文档之前位于
,但该域似乎已于 2009 年永久离线。有关历史记录和缺失域的更多详细信息,请参见此处。http://www.open-spf.org/SPF_Record_Syntax/
我的回答是,是的,你似乎已经想到了。
a:测试 IP 在域的 A 记录中是否匹配。
include:获取域的整个 SPF 记录,根据它评估 IP,如果找到 PASS,则 PASS 将成为整个 SPF 测试的结果。如果没有发现 PASS,那么它不是失败,但您的原始/顶级 SPF 测试会继续(可能到 -all/~all/?all 阶段)。
使用“a”的原因:
使用“include”的原因:
很高兴被纠正!
1) include:other-domain.com 仅包含来自 other-domain.com 的 SPF 记录。 如果 other-domain.com 的 SPF 条目允许某些 ip(例如有 ip4: 或 a: 条目),那么这些 ip 也将被允许。
2)正确
我认为围绕此问题的很多困惑在于
v=spf1 a -all
并不总是包含所有 A 或 AAAA 记录,例如子域。
最好包含您的 FQDN,例如
v=spf1 a:subdomain.example.com -all
对于
include
,例如include:subdomain.example.com,
,它将验证包含的子域上的SPF记录,并根据itsa
记录和参数进行处理。通常,如果您只管理您的域,这会产生额外的工作。
如果您需要允许 IP 地址,只需使用
a
指令并包含 FQDN。
当然,如果您通过 Google、M365 或其他电子邮件提供商进行路由,那么
include
路由将是最佳选择。