MX 記錄

DNS 郵件交換 (MX) 記錄是域名系統中的一種資源記錄類型,用於指定負責代表域名接收電子郵件的郵件服務器。MX 記錄將電子郵件導向正確的服務器,並包含優先級值,用於確定應聯繫郵件服務器的順序。

How it works

當有人向您的域名發送電子郵件時(例如 user@example.com),他們的郵件服務器需要知道哪個郵件服務器應該接收該郵件。MX 記錄通過將您的域名映射到一個或多個郵件服務器來提供此信息,同時包含優先級值以確定應嘗試的順序。

使用 MX 記錄的電子郵件路由過程如下: 1. **發送郵件**:有人向 user@example.com 發送電子郵件 2. **DNS 查詢**:發送方的郵件傳輸代理 (MTA) 對 example.com 關聯的 MX 記錄執行 DNS 查詢 3. **檢索 MX 記錄**:DNS 服務器響應該域名的所有 MX 記錄,每條記錄包含優先級值和郵件服務器主機名 4. **優先級排序**:發送 MTA 按優先級對 MX 記錄進行排序(數字越小 = 優先級越高) 5. **連接嘗試**:發送方的 MTA 嘗試通過 SMTP 連接到最高優先級的郵件服務器(數字最小) 6. **故障轉移**:如果第一個服務器不可用,MTA 將嘗試下一個最高優先級的服務器,繼續在列表中依次嘗試,直到成功投遞或所有服務器均失敗 優先級系統通過冗餘確保電子郵件投遞的可靠性。組織通常配置多個 MX 記錄指向不同的郵件服務器,用於備份和負載均衡。

Key Points

  • MX 記錄由兩部分組成:優先級值和郵件服務器主機名
  • 較低的優先級數字表示更高的優先級(例如,優先級 10 會在優先級 20 之前嘗試)
  • 多個 MX 記錄為電子郵件投遞提供冗餘和負載均衡
  • MX 記錄必須指向主機名(A 或 AAAA 記錄),永遠不能直接指向 IP 地址
  • 如果不存在 MX 記錄,某些郵件服務器會嘗試使用域名的 A 記錄作為備用方案進行投遞

Common Use Cases

  • 郵件服務器配置: 將電子郵件流量導向您組織的郵件服務器,無論是自託管還是使用 Gmail、Microsoft 365 或其他電子郵件服務提供商
  • 冗餘和故障轉移: 設置具有不同優先級的多個 MX 記錄,確保即使主郵件服務器暫時不可用,電子郵件投遞也能繼續
  • 負載均衡: 配置具有相同優先級的多個 MX 記錄,將傳入的電子郵件分配到多個服務器,防止任何單個服務器過載
  • 垃圾郵件過濾: 將 MX 記錄指向垃圾郵件過濾服務(如 Cloudflare Area 1 或 Barracuda),然後再將乾淨的電子郵件路由到實際的郵件服務器

code 配置示例

TypeHost / NameValue / Points toTTL
MX@10 mail1.example.com3600
MX@20 mail2.example.com3600
MX@30 mail3.example.com3600
Amail1192.0.2.103600

* MX 記錄包含優先級值(越低 = 優先級越高)和郵件服務器主機名。多個記錄提供冗餘。

Frequently Asked Questions

MX 記錄可以直接指向 IP 地址嗎?expand_more
不可以,MX 記錄必須指向主機名(域名),而不是 IP 地址。MX 記錄中指定的主機名必須有自己的 A 記錄(用於 IPv4)或 AAAA 記錄(用於 IPv6),解析為郵件服務器的實際 IP 地址。這是 RFC 2181 中定義的基本 DNS 要求。
如果我有多個具有相同優先級的 MX 記錄會發生什麼?expand_more
當多個 MX 記錄具有相同的優先級值時,郵件服務器將在每次投遞嘗試時隨機選擇其中一個。這提供了基本的負載均衡,將傳入的電子郵件大致均勻地分配到具有相同優先級的服務器上。當您有多個具有相同能力的郵件服務器並希望在它們之間平衡負載時,這很有用。
如果我不接收電子郵件,是否需要 MX 記錄?expand_more
如果您不需要在您的域名上接收電子郵件,您可以完全省略 MX 記錄,或創建一個「空 MX」記錄(優先級 0,指向單個點「.」),明確表示該域名不接受電子郵件。空 MX 方法是首選,因為它向發送服務器明確發出信號,不要嘗試電子郵件投遞,從而防止浪費投遞嘗試。
MX 記錄如何與子域配合使用?expand_more
每個子域可以擁有獨立於父域的自己的 MX 記錄。例如,example.com 可能有指向一個郵件服務器的 MX 記錄,而 support.example.com 可以有指向不同郵件服務器的不同 MX 記錄。如果子域不存在 MX 記錄,則不會自動回退到父域的 MX 記錄 - 發送到該子域的電子郵件將失敗,除非發送服務器嘗試使用子域的 A 記錄進行投遞。
MX 記錄的合適 TTL 值是多少?expand_more
MX 記錄通常使用 1 小時(3600 秒)到 24 小時(86400 秒)之間的 TTL 值。由於郵件服務器配置不經常更改,通常可以接受較長的 TTL 值,並減少 DNS 查詢負載。但是,如果您計劃遷移郵件服務器,請在更改前一兩天將 TTL 降低到 5-15 分鐘,以確保新記錄更快地傳播。