Domain-Name-System
為 SMTP 伺服器使用 CNAME
我正在從事一個涉及使用事務性電子郵件服務(如 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 地址塊 的定義,以避免混淆。