![当 SPF 包含没有 SPF 但有 A 记录的域名时会发生什么](https://linux22.com/image/747481/%E5%BD%93%20SPF%20%E5%8C%85%E5%90%AB%E6%B2%A1%E6%9C%89%20SPF%20%E4%BD%86%E6%9C%89%20A%20%E8%AE%B0%E5%BD%95%E7%9A%84%E5%9F%9F%E5%90%8D%E6%97%B6%E4%BC%9A%E5%8F%91%E7%94%9F%E4%BB%80%E4%B9%88.png)
我们偶尔会使用其邮件服务器来发送电子邮件的一家公司要求我们将其域名包含在我们的 SPF 记录中,如下所示:v=spf1 [...] include:app.sgizmo.eu ~all
。
现在事实证明,我们指向的域上实际上没有 SPF 记录app.sgizmo.eu
。那里唯一的记录是A
一直在变化的记录(可能是 cloudflare)。
据我所知,SPF 记录的缺失意味着app.sgizmo.eu
我们的记录include
完全没有影响。就好像它不存在一样。
让我困惑的是,SPF 检查工具spf-record.comapp.sgizmo.eu
A
列出记录中出现的用于发送电子邮件的 IP,allowed
其措辞如下:
额外的外部 SPF 记录。
我们可以在 SPF 记录中找到授权的其他记录:app.sgizmo.eu
A记录:52.222.174.243 52.222.174.77 52.222.174.112 52.222.174.23
这是工具的 bug 吗?还是我对 SPF 的理解有误,缺少 SPF 记录意味着 A 记录算作已接受的 IP?
答案1
您的理解是正确的,这似乎是工具中的一个错误。或者也许偏离 SPF 的 RFC 并允许这种行为是一种常见的做法。
如果你使用Dmarcian 工具,它将失败,因为它应该遵循 SPF RFC。RFC 状态包含机制应引用有效的 SPF ( TXT
) 记录。如果未找到,则应返回 PERMERROR。
为了使其正常工作,您可以添加a:app.sgizmo.eu
,如果这些确实是用于代表您发送电子邮件的 IP 地址。