SPF Include 语句仍未通过

问题描述

像许多其他人一样,我在 SPF/DKIM/DMARC 世界中有些困惑。 大约 4 周前,我为使用 Google 邮件服务器的 GoDaddy 托管域正确设置了所有内容(SPF/DKIM/DMARC)。

我将 _dmarc TXT 记录设置为对 p=none 采取零操作,并使用 Postmark 监控结果以查看一周内通过和失败的情况。

一周左右后,我查看了 Postmark 结果,并为我想通过的域插入了 include: 语句,但没有插入。然后我又等了一周才能看到结果。但是,结果显示域仍然没有通过 SPF 或 DKIM。下面是 SPF 记录,我已经编辑了其中的部分内容,但其中两个域是合法的,但仍未通过。

v=spf1 include:_spf.google.com include:freshemail.io include:cherryroad.com ~all

我是否需要在 include 语句中使用实际 IP 地址而不是域?邮戳也列出了这些,这样就很容易了。

解决方法

不,您不应该在那里复制他们的 IP,因为它们可能会发生变化,尤其是 Google 的。

如果它失败了,大概你有一些结果(通常在消息头中)告诉你哪个 IP 失败了,你可以手动追踪它,虽然这些包含,对其进行反向查找等。

但是,您也在使用 GoDaddy,这在很大程度上可以保证不起作用,因为它们要么阻止出站 SMTP,要么通过自己的服务器将其路由,因此您不太可能获得 SPF 通行证。

,

问题出在 SPF DNS lookup limits 上。我不知道这是一回事,令我惊讶的是文档中没有提到这一点(无论是 Google 的官方文档)或以其他方式)在设置 SPF/DKIM/DMARC 时,并没有出现在这个问题的谷歌搜索中。 此限制旨在防止拒绝服务攻击和无限 DNS 循环。

对于看到这篇文章的其他人

v=spf1 include:_spf.google.com include:freshemail.io include:cherryroad.com ~all

此 SPF 记录实际上有近 15 次 DNS 查找,并且每个域的限制为 10 次。您可以通过 AutoSPFEasy DMARC

等服务了解您的域有多少 SPF DNS 查找

解决方案,当您看到 DNS 查找总数后,有四个选项:

  1. 创建子域并使用这些子域使记录多样化。例如,使用“email@business.mydomain.com”作为 freshemail.io 的电子邮件。然后在该子域的 SPF 记录上,您将只有 v=spf1 include:freshemail.io 导致对该域的 DNS 查找少于 10 次。

  2. 正如@Synchro 所提到的,您不想使用 IP,因为 IP 可以很好地改变,但是使用 IP 而不是域名的概念本质上确实有效,因为 IP地址不会花费 DNS 查找。检查您使用的任何服务的支持/工程,他们可能拥有不经常更改的 IP(或 IP 范围)。使用此功能,您可能可以将 DNS 查找次数减少到 10 次以下。

    请注意,Google 进行了大约 3 次 DNS 查找,您可能希望将其保留为 _spf.google.com 值

    请注意,每个 SPF 记录也有 255 个字符的限制,因此如果您仅使用 IP,则可能需要将其分解为许多 SPF 记录

  3. 使用 SPF flatteningcompressing 服务,例如 AutoSPF。本质上,这些服务采用方法#2,但每隔几个小时做一些后端工作来检查和更新与域关联的 IP 地址。然后,它们会为您提供一个“压缩”记录,例如 v=spf1 include:_6359384.autospf.com ~all,该记录引用您的所有记录并导致 DNS 查找次数少得多。

  4. 使用 GoDaddy's API 创建您自己的方法,其行为类似于 #2 和 #3,并调制一些可以在计划/作业上执行更新查找并更新单独的 SPF 记录(包括所有 IP)的方法.

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...