【问题标题】:How to fix SPF issue如何解决 SPF 问题
【发布时间】:2017-10-04 16:35:18
【问题描述】:

所以我正在使用 mail-tester.com,这很棒,但现在我很困惑。我第一次运行测试时,它是这样说的(在 SPF 部分,问题在于:您不允许使用您的发件人电子邮件地址之一

What we retained as your current SPF record is:
  v=spf1 a mx ~all

It should be changed to:
  v=spf1 a mx ip4:some-ip-address ~all

Need guidance? Visit the guide for cloudflare.

当我点击 CloudFlare 指南的链接时,它字面上说我的新 TXT 记录应该是 v=spf1 a mx ~all,这与上一页基本矛盾。所以......也许最初的诊断页面是具体的指导,而 CloudFlare 的指南只是一般指导,关于在哪里放置记录?无论如何,所以我在 CloudFlare 中没有带有v=spf1 a mx ~allTXT 记录(再次不寻常,因为上一页说它保留了这样的 SPF 记录),所以我添加了它。它没有做任何事情来修复我的分数。

所以我当时的想法是,好吧,让我们按照诊断页面的具体指导添加 IP 地址。下次我进行测试时,我得到了:

What we retained as your current SPF record is:
  v=spf1 a mx ip4:some-ip-address ~all

It should be changed to:
  v=spf1 a mx ip4:some-ip-address ip4:different-ip-address ~all

Need guidance? Visit the guide for cloudflare.

而且...您猜对了,不断遵循这些说明只会让我进入一个永无止境的循环,将新 IP 地址添加到记录中,但实际上并没有改变我的分数。就像,现在我在:

What we retained as your current SPF record is:
  v=spf1 a mx ip4:some-ip-address ip4:different-ip-address ~all

It should be changed to:
  v=spf1 a mx ip4:some-ip-address ip4:different-ip-address ip4:another-ip-address ~all

Need guidance? Visit the guide for cloudflare.

其他人有这方面的经验吗?如果你不知道,我是 SPF 的菜鸟,不知道如何诚实地解决这个问题。就上下文而言,我的域和邮件由 Gandi 管理,但通过 CloudFlare 重定向,因此 CloudFlare 是我的 DNS 记录实际保存的地方。

【问题讨论】:

  • 试试spfwizard.net
  • 感谢@Jules。它建议做 TXT v=spf1 mx a,这是我已经拥有的。除非邮件测试员的诊断不可信......(即,在这种情况下,v=spf1 mx a 可能工作得很好)
  • 不对,应该是更大的字符串。您必须填写所有条目。对于 Strictness,请使用 SoftFail。

标签: email dns cloudflare spf


【解决方案1】:

当你这样说时:

v=spf1 a mx ~all

它表示从您域的 A 记录解析的 IP,以及任何指定为您域的邮件交换器的 IP 将收到 SPF pass 状态,其他所有 IP 将收到 softfail

因此,当您收到该错误时,这意味着您正在从该允许来源列表未涵盖的地方发送,因此建议您将发送 IP 添加到您的记录中以允许它。

如果您从 gmail 之类的具有大量邮件服务器池的地方发送邮件,则源地址会经常更改,这可以解释为什么它每次都建议使用不同的 IP。

有两种解决方案:

  1. 不要使用外部服务发送,而真正从您明确指定的 IP(即您的 amx 选项涵盖的 IP)发送。
  2. 使用 SPF include 指令允许从使用动态发送 IP 的源发送。

在后一种情况下,您的记录应如下所示:

v=spf1 a mx include:_spf.google.com ~all

虽然您说您使用的是 cloudflare 和 gandi,但您并没有说明您实际从哪里发送电子邮件 - 如果您不使用 gmail,那么 include SPF 来自您使用的任何其他服务。

更新。给定217.70.183.200 的实际源 IP,我们可以看到发生了什么。 Whois 告诉我们该 IP 属于 gandi.net,查找 gandi.net 的 SPF 记录会返回:

v=spf1 ip4:217.70.176.0/21 ip4:217.70.186.186/32 ip4:217.70.186.187/32 ip6:2001:4b98:c::/48 ip6:2001:4b98:dc2:43:216:3eff:fe69:f13/128 ip4:217.70.186.186/32 ip6:2001:4b98:dc2:90:217:70:186:186/128 ptr ?all

其中列出的第一个地址范围 (ip4:217.70.176.0/21) 涵盖了217.70.183.200 地址,因此我建议您将 SPF 设置为此,这应该可以解决您的问题(这正是我在选项 2 中所说的 以上):

v=spf1 a mx include:gandi.net include:_spf.google.com ~all

【讨论】:

  • 谢谢,这很有帮助!不幸的是我试过了,现在 mail-tester 说我需要 v=spf1 a mx include:_spf.google.com ip4:some-ip-address ~all... 除非 mail-tester 是错的?
  • 不,这只是意味着您仍在尝试从您的 SPF 规则未涵盖的地方发送。您还没有告诉我们您从哪里发送,所以我们只能猜测。
  • 所以我已将 Gmail 配置为代表我的 Gandi 邮件服务器发送邮件
  • 如果您能提供您发送的真实 IP 地址,我们可能希望对此进行诊断。
  • 啊好吧,对不起,我早点把它给你,我只是觉得它没有意义,因为它看起来一直在变化。没有意识到这是有帮助的。这工作,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2016-11-15
  • 2011-01-04
  • 2012-03-22
  • 2021-12-22
  • 2020-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多