Email

未個性化的多個域郵件標頭

  • January 4, 2017

我有一個 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 伺服器。

希望能幫助到你。

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