2017-05-06 225 views
0

所以我使用的是mail-tester.com,这很好,除了现在我非常困惑。我第一次跑了测试,下面是它说(在SPF部分,其中的问题是:您不允许使用发件人的电子邮件地址之一)如何解决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中没有TXT记录v=spf1 a mx ~all(在前面的页面中说它保留了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记录实际保存的位置。

+0

给http://www.spfwizard.net/一试。 – Jules

+0

谢谢@Jules。它建议做TXT'v = spf1 mx a',这是我已经有的。除非邮件测试者的诊断信息不可信......(即,在这种情况下'v = spf1 mx a'可能工作得很好) – james

+0

这是不对的,它应该是一个更大的字符串。你必须填写所有条目。对于严格性,请使用SoftFail。 – Jules

回答

0

当你这样说:

v=spf1 a mx ~all 

它说,从您的域名解析IP的A记录,任何指定为邮件交换你的域名的IP地址都会收到一个SPF pass状态,一切都否则将收到softfail

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

如果您从gmail等具有大量邮件服务器的地方发送邮件,源地址将频繁更改,这可以解释为什么每次都建议使用不同的IP。

有两个解决办法:

  1. 不要发送邮件使用外部服务,真正只发送从您指定的显式IP地址(即由您amx选项覆盖) 。
  2. 使用SPF include指令允许从使用动态发送IP的源发送。

在后一种情况下,你会做你的记录是这样的:

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

虽然你说你正在使用的CloudFlare和甘地,你不说,你实际上是从发送电子邮件 - 如果你没有使用Gmail,那么include SPF来自您正在使用的其他服务。

更新。给定一个实际的来源IP为217.70.183.200,我们可以看到发生了什么。域名注册告诉我们,该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这一点,这应该解决您的问题(这正是我选择上面说的):

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

谢谢你的帮助!不幸的是我试了一下,现在邮件测试员说我需要'v = spf1 a mx include:_spf.google.com ip4:some-ip-address〜all' ...除非邮件测试人员错了吗? – james

+0

不,它只是意味着你仍然试图从某个未被SPF规则覆盖的地方发送。你没有告诉我们你从哪里寄出,所以我们只能猜测。 – Synchro

+0

因此,我将Gmail配置为代表我的Gandi邮件服务器发送邮件 – james