2017-05-06 226 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