Domain-Name-System

為 SMTP 伺服器使用 CNAME

  • March 13, 2016

我正在從事一個涉及使用事務性電子郵件服務(如 sendgrid)的項目。我的問題是我們能否在我們的域 DNS(即 smtp.example.com 或 client1.example.com)中創建一個指向電子郵件服務 smtp 伺服器的 CNAME?

這將屏蔽我們使用的服務(即 sendgrid、mailgun)的 SMTP 伺服器。

我們的目標是根據我們的客戶端改變 DNS 條目。例如,我們可能有 client1.example.com、client2.example.com 等。每個客戶端子域都是電子郵件服務的 CNAME。如果需要,我們還可以通過更改 CNAME 引用的位置來切換電子郵件服務。舉個例子:

   NAME                    TYPE   VALUE
--------------------------------------------------
client1.example.com        CNAME  smtp.emailservice.com
client2.example.com        CNAME  smtp.emailservice.com

在對此進行研究時,它似乎有效,但我想看看是否有任何我應該尋找的問題。我們根本處理 MX 記錄、POP3 或任何傳入的電子郵件,我們也不能使用 API 進行發送。它必須通過 SMTP。

謝謝!

對您的問題的天真回答是簡單的“是”。您顯然可以按照建議的方式創建 CNAME RR。其中可能出現哪些問題,是完全不同的事情——CNAMES 經常被誤解,使用容易出錯。

需要考慮的要點是:

  • 您不得將您的 CNAME 用作 MX RR 的目的地(RFC 2181第 10.3 節)
  • 您不得為您定義為 CNAME 的標籤創建任何其他 RR 類型定義(STD 13,RFC 1034,第 3.6.2 節)

因此,以您的問題中的 RR 定義為先決條件,以下情況將顯示無效使用:

; these are INVALID RR definitions, don't even try!
mail.example.com.     IN MX  client1.mydomain.com. ; no MX to CNAME RRs
client1.mydomain.com. IN A   198.51.100.203        ; no other RR types for CNAMEd labels

在以後的文章中,當使用 IP 地址和名稱空間作為範例和/或文件目的時,請考慮堅持為文件(RFC 5737)特殊用途域名(RFC 6761)保留的 IPv4 地址塊 的定義,以避免混淆。

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