未個性化的多個域郵件標頭
我有一個 IP 1.1.1.1 上帶有 Postfix/Dovecot 的專用伺服器(Ubuntu 14.04)
我託管 4 個域:2 個在 IP 1.1.1.1 上,1 個在 IP 1.1.1.2 上,1 個在 IP 1.1.1.3 上。這些域中的每一個都有一個指向它們自己 IP 地址的 DNS 記錄(A domain.com/mail.domain.com、MX 記錄、SPF 等)。
問題是每當我發送電子郵件並查看我看到的電子郵件標題時:
> X-Spam-Last-External-IP: 1.1.1.1 > X-Spam-Last-External-HELO: server.hostname.com > X-Spam-Last-External-rDNS: Default Domain on 1.1.1.1 > Received: from server.hostname.com (Default Domain [1.1.1.1]) etc..
難道不能顯示每個時間域的相關資訊而不是伺服器資訊嗎?例如 1.1.1.2 IP 和 mail.domain2.com 主機名等?
我認為不可能讓一個後綴程序監聽所有地址,但使用多個主機名作為 HELO 標頭,因為SMTP 協議不支持客戶端指定主機名的任何方式。
考慮一下 HTTP 虛擬主機作為一個類似的場景,也許是你想到的那個。客戶端解析主機名,然後發出 HTTP 請求,在標頭**中指定主機名
Host
。這個標頭使虛擬主機成為可能。現在考慮 HTTPS。直到最近,還沒有辦法在伺服器上託管多個 HTTPS 虛擬主機,因為
Host
標頭是加密負載的一部分,因此必須在發送 Host 標頭*之前建立 TLS 會話。*但是由於伺服器提供的證書取決於所Host
使用的名稱,這意味著一個 IP 地址必須專用於每個不同的 HTTPS 伺服器名稱(或更準確地說,每個 https 證書的通用名稱。萬用字元可以匹配多個)。相對最近,將SNI 擴展添加到 HTTPS 以緩解該問題,因此現在在建立 TLS 會話之前
Host
,伺服器可以使用標頭。好的,讓我們回到 SMTP。SMTP 客戶端在連接時不指定特定的伺服器名稱。伺服器實際上在主機詢問之前就辨識了自己!
$ telnet gmail-smtp-in.l.google.com. 25 Trying 74.125.29.27... Connected to gmail-smtp-in.l.google.com. Escape character is '^]'. 220 mx.google.com ESMTP 11si20717228qkl.61 - gsmtp
但是,您可以根據自己的情況做一些事情,但這很不方便。您可以執行多個 postfix 伺服器,每個伺服器都偵聽一個專用 IP,並且每個伺服器都配置為使用適當的名稱進行響應。據我了解,這是實現您想要的唯一方法,類似於在 SNI 之前的時代在專用 IP 上執行 https 伺服器。
希望能幫助到你。