Domain-Name-System

正確配置 DNS 以在多域託管 VPS 上發送電子郵件

  • September 16, 2015

背景

我有一個 VPS,有一個外部 IP 託管 <10 個域 (DOMAIN.TLD)。每個域都接收和發送電子郵件。每個域都有關聯的 DKIM / SPF / MX 條目。PTR 記錄存在並與 VPS 上的主域 (MAINDOMAIN.TLD) 相關聯。

問題

  1. 對於某些收件人,郵件最終會進入垃圾郵件文件夾(雅虎),而其他人(outlook)根本不會收到郵件。Gmail(以及其他託管在 one.com 等不同託管服務提供商的電子郵件)會立即收到收件箱。
  2. 對於如何配置每個域的 DNS 與電子郵件有關,沒有一個清晰的想法。

到目前為止我所做的

最初(未測試的仍然有),每個域都有一個 A 記錄 (mail.domain.tld ) 和一個指向 A 記錄的 MX 記錄,但沒有與 VPS IP 關聯的 PTR。電子郵件發送有效,但我遇到了問題 #1

A     -&gt; MAIL -&gt; VPS_IP
MX    -&gt; 10   -&gt; MAIL.DOMAIN.TLD.

在了解並設置 PTR 記錄後(這是一些電子郵件伺服器忽略我的電子郵件,因此沒有收到它們的主要原因),我考慮將每個域 MX 記錄指向 PTR 解析的域(MAINDOMAIN.TLD -> VPS_IP)。我嘗試使用 CNAME 指向,然後直接使用 MX 指向。

CNAME -&gt; MAIL -&gt; MAINDOMAIN.TLD.
MX    -&gt; 10   -&gt; MAIL.DOMAIN.TLD.

進而

MX    -&gt; 10   -&gt; MAINDOMAIN.TLD.

在這兩種情況下,我遇到的情況與問題 #1 中描述的情況相同。

問題

  1. 設置有什麼問題?
  2. 解決此問題的最佳方法是什麼 - 讓所有域使用 MAINDOMAIN.TLD 作為 MX(通過 CNAME 或直接?)或讓所有域使用自己的域作為 MX?(我認為第一個變體是可行的,因為 PTR 記錄以及我只有一個外部 IP 地址的事實 - 但我不明白為什麼它不起作用)
  3. 是否有任何免費且可靠(想要太多?)的外部電子郵件提供商可以處理電子郵件發送而不是自己做?

可能相關的附加資訊

  • 我如何知道 DNS 記錄是否符合我的描述 - 使用 linux cli 工具,如 host、dig、nslookup + https://mxtoolbox.com/
  • 我使用 ISPconfig3 作為主機控制面板
  • VPS 是從 DigitalOcean 購買的,DNS 管理在 DigitalOcean 儀表板中完成
  • SMTP 伺服器是後綴
  • 我的 IP 沒有被列入黑名單 - 檢查 https://mxtoolbox.com/SuperTool.aspx?action=blacklist ;mail-blacklist-checker.online-domain-tools.com/
  • /var/log/mail.log 中沒有任何相關資訊 - 表明正在發送電子郵件,但沒有任何與答案相關的內容

簡單的好方法

聘請優秀的郵政主管和主持人,他們可以快速輕鬆地解決您所有的菜鳥錯誤(很多)

艱難而榮耀的方式

RTFM,成為稱職的郵政局長和主持人,做正確的事(tm)

您目前的(相關和不相關的)錯誤

  1. 永遠不要將 MX 指向 CNAME,只指向 A
@    MX mail
mail CNAME some.name

不好

@    MX mail
mail A some.ip.here

很好,即使some.ip.here在任何|所有域中共享

  1. MX 配置(任何)與您無法投遞的電子郵件無關:對於極端偏執的檢查(但仍符合 RFC)僅適用於域的 MX:1)必須存在 2)可解析為可路由 IP
  2. 接收方所有與 IP 相關的測試包括(AFAICR,我已經離開 *master 業務很長時間了),最大限度地(我在我的 MXes 上完成了它):
  • Pure hostmaster area : Paranoid IP-check (IP1-hostname-IP2) for connected IP, all resolves must be successful and IP1=IP2
  • 混合 2 個區域:EHLO(HELO) 參數中的主機名(與 SMTP 相關的配置)必須是可解析的(DNS 遊戲)(只能解析為任何真實 IP,它也符合 RFC)並且不能與電子郵件的域相關聯以任何方式或發射器的主機名(但在目前蹩腳的世界中,使用您的 VPS 的主機名會更安全)
  1. 垃圾郵件過濾可以(很可能)是內容分析的結果,與您的 DNS 設置沒有直接關係

考慮像 MimeCast 這樣的郵件過濾公司——他們需要為數千個域發送和接收郵件。您的問題是他們設置的一個小版本。

  • 每個 MX 都可以愉快地指向 maindomain.tld,它們不需要為每個域進行個性化/更改。您必須遵循 MX 記錄的標準,正如任何已知的那樣,該標準不允許 CNAME。
  • 每條 SPF 記錄必須在所有方面都是正確的,並且可以包含該聲明include:maindomain.tld
  • maindomain.tld 的 PTR 記錄正確引用用於發送郵件的 A 記錄(例如 mail.maindomain.tld)是明智的。
  • 所有郵件伺服器都應配置為在 EHLO 中以上面的主機名宣布自己。

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