SPF include: 和 a: 有什么区别?

问题描述 投票:0回答:3

我已阅读文档,但我仍然不太清楚其中的区别。

我的理解是: 1) 包含:将允许为指定域列出的 IP,以及该域自己的 SPF 记录中列出的任何其他域

2) a:仅允许为指定域列出的 IP

正确吗?

email spam-prevention spf
3个回答
19
投票

再次尝试为其他试图将其放在一起的人提供答案,并基于OP可能引用的语法文档,open-spf.org“SPF记录语法”页面

注:此文档之前位于

http://www.open-spf.org/SPF_Record_Syntax/
,但该域似乎已于 2009 年永久离线。有关历史记录和缺失域的更多详细信息,请参见此处

我的回答是,是的,你似乎已经想到了。

  • a:测试 IP 在域的 A 记录中是否匹配。

  • include:获取域的整个 SPF 记录,根据它评估 IP,如果找到 PASS,则 PASS 将成为整个 SPF 测试的结果。如果没有发现 PASS,那么它不是失败,但您的原始/顶级 SPF 测试会继续(可能到 -all/~all/?all 阶段)。

使用“a”的原因:

  • 因为它更加可预测和直接。
  • 因为您还没有在相关域名上设置SPF。
  • 因为您无法控制这些域,并且 SPF 不是您想要的(特别是如果它在接受不在其 A 记录中的其他服务器方面过于宽松)

使用“include”的原因:

  • 因为您已经信任域的 SPF。
  • 因为域的 SPF 很复杂,并且出于不重复的原因,您希望拥有单一的事实来源。

很高兴被纠正!


7
投票

1) include:other-domain.com 仅包含来自 other-domain.com 的 SPF 记录。 如果 other-domain.com 的 SPF 条目允许某些 ip(例如有 ip4: 或 a: 条目),那么这些 ip 也将被允许。

2)正确


0
投票

我认为围绕此问题的很多困惑在于

v=spf1 a -all
并不总是包含所有 A 或 AAAA 记录,例如子域。

最好包含您的 FQDN,例如

v=spf1 a:subdomain.example.com -all

对于

include
,例如
include:subdomain.example.com,
,它将验证包含的子域上的SPF记录,并根据its
a
记录和参数进行处理。通常,如果您只管理您的域,这会产生额外的工作。

如果您需要允许 IP 地址,只需使用

a
指令并包含 FQDN。

当然,如果您通过 Google、M365 或其他电子邮件提供商进行路由,那么

include
路由将是最佳选择。

© www.soinside.com 2019 - 2024. All rights reserved.