SPF 记录失败 - 如何验证服务器 IP 地址并管理多个 SPF 记录

SPF 记录失败 - 如何验证服务器 IP 地址并管理多个 SPF 记录

我正在尝试验证我们服务器发送的邮件。使用我们当前的 DNS 设置,从我们的服务器发送邮件会显示SPF 中性回复。

我尝试添加我的服务器的 IP 和域的组合。

v=spf1 a mx ipv4:XXX.XX.XXX.XX -all
v=spf1 include:mydomain.com -all

这两条记录均未显示任何变化,从服务器发送的所有邮件仍为“中立”。因此,我尝试合并所有现有 SPF 记录,如下所示:

v=spf1 a mx include:mydomain.com ipv4:XXX.XX.XXX.XX include:cmail1.com include:mail.zendesk.com -all

我再次尝试发送邮件,现在收到SPF 失败回复。

我在网上查找了很多资料,但还是不知道该如何修复 DNS 条目,这样才能让 SPF 记录通过。我不知道我是否需要额外的 CNAME、A、MX,或者我是否完全遗漏了某些内容。

我正在使用具有固定 IPv4 地址的 Plesk 服务器,并使用 CloudFlare 来管理我的 DNS 和名称服务器。

完整的失败响应如下所示:

SPF:    FAIL with IP XXX.XX.XXX.XX
spf=fail (google.com: domain of [email protected] does not designate XXX.XX.XXX.XX as permitted sender) [email protected]
Received-SPF: fail (google.com: domain of [email protected] does not designate XXX.XX.XXX.XX as permitted sender) client-ip=XXX.XX.XXX.XX;
spf=fail (google.com: domain of [email protected] does not designate XXX.XX.XXX.XX as permitted sender) [email protected]

答案1

已修复。我花了很长时间与我的提供商沟通,但我们无法找出它无法正常工作的原因。

小心!我从一个网站复制了我的代码,该网站说要使用 ipv4,它应该是 ip4!(没有 v)

答案2

在修复单个语法错误时(ipv4而不是ip4) 似乎已经解决了您的问题,但这仍然不是您的 SPF 记录的唯一问题。这就是为什么阅读官方文档以了解问题始终是一个好主意。

  • 第一个问题你已经通过反复试验找到了答案,但是RFC 7208 3.2来源明确地说明了这一点:您应该将单个主机名的 SPF 规则合并为单个TXT记录。

    域名不得具有多个记录,否则会导致授权检查选择多个记录。

  • 你应该明白include机制确实如此:指定的领域是搜索匹配项,即查找更多 SPF 规则。您的include:mydomain.com建议是尝试使用它作为a机制。如果这是在mydomain.com. TXT,它是一个试图包含自身的引用!

    您还应该检查所有其他includes,看看它们是否真的有 SPF 记录。您应该仅限include现有记录

    警告:如果域名没有有效的 SPF 记录,则结果为

永久性错误。有些邮件接收方会根据 而拒绝 PermError

  • 如果您的amx解析为相同的 IP 地址,那么ip4它们是不必要的,应该被删除。仅列出一次服务器

    最终,SPF 查找解析为 IP 地址。

如果服务器的 IP 很少变化,请考虑使用ip4:x.x.x.x(或 ip6) 表示法,以便收件人可以完全避免 DNS 查找。由于每个 SPF 记录的 DNS 查找限制为 10 次,因此对于较长的外发邮件服务器列表,最好指定 IP 地址或地址范围。

通常,SPF 记录可以压缩为类似于v=spf1 ip4:x.x.x.x -all只有一个外发邮件服务器的情况。

阅读链接中有关 SPF 语法和常见错误的文章可以很好地了解整个主题。如果您也对其工作原理感兴趣,链接的 RFC 添加了所有技术细节。

相关内容