Smtp

為通過 Google Apps SMTP 伺服器發送電子郵件的 VPS 配置 SPF、DKIM、反向 DNS

  • November 5, 2013

今天我們意識到我們所有發送到該類型電子郵件地址的電子郵件<username>@corporatedomain.com都被拒絕了。我不知道誰在託管電子郵件corporatedomain.com。我不認為這應該重要。無論如何,我們得到的錯誤是

Technical details of permanent failure:
Google tried to deliver your message, but it was rejected by the server for the recipient domain example.com by mail.example.com. [yyy.yyy.yyy.230].

The error that the other server returned was:
550 5.7.1 Command rejected
  • 我們有一個 Google Apps 帳戶,用於mydomain.com. 的 DNSmydomain.com有 SPF 記錄v=spf1 mx include:spf.mailjet.com -all
  • 我們正在使用 Google Apps SMTP 伺服器通過我的應用程序發送交易電子郵件。我們正在使用 mailjet 帳戶發送批量行銷電子郵件。
  • 由於該域的郵件由 Google Apps 處理,MX 記錄都指向預設的 Google 應用程序。
  • 我的 VPS 有兩個公共 IP 地址。我的 VPS 上沒有安裝 SMTP 伺服器。我只使用 Google Apps SMTP 伺服器從我的 VPS 中發送電子郵件。
  • 只有通過 Google App SMTP 伺服器發送的電子郵件被阻止。Mailjet 的傳遞很好。

鑑於上述使用模式和 VPS 環境設置,我假設 SPF 會正確結帳(MX 記錄指向 Google,我正在使用他們的 SMTP 伺服器發送電子郵件)。

Google搜尋錯誤確實沒有導致任何結果。最終,我嘗試通過在 SPF 中包含我能想到的任何內容來解決這個問題。現在它可以工作了。涼爽的!spf 條目現在顯示為

v=spf1 include:_spf.google.com include:spf.mailjet.com ip4:xxx.xxx.xxx.143 ip4:xxx.xxx.xxx.144 mx ~all

但我不確定它為什麼有效。我真的不想trial & error找到適用於收件人域的最低限度設置。這些東西必須有一個規範,對吧?畢竟,所有電子郵件都已經/正在發送給所有使用者(而不是屬於 的電子郵件corporatedomain.com)。

我懷疑在目前的 SPF 條目中,不需要ip4機制和機制。mxGoogle 文件建議使用include:_spf.google.com而不是mx. 此外,這個以較少限制結束~all。舊的 SPF 以高度限制性的-all. 有人可以確認我的案例的理想 SPF 記錄應該是什麼嗎?

旁注:我現在已經為mydomain.com. 我不知道我是否需要設置反向 Dns。我不認為我這樣做,因為我沒有“發送”電子郵件,Google Apps SMTP 伺服器是。如果我錯了,請糾正我。

您最終添加的include:_spf.google.com可能是這裡的關鍵部分。它會將 Google 的伺服器標記為代表您發送郵件的合法發件人。

引用自:https://serverfault.com/questions/550853