Postfix
Postfix 作為智能主機?這可能嗎
我們在 3 個獨立的公共靜態 IP 上有 3 個 SMTP 伺服器。我們在單個靜態 IP 上有一個輔助故障轉移連接。我想將所有 3 台 SMTP 伺服器放在路由器後面並關閉公共 IP,使用 postfix 在主網際網路連接和故障轉移上接受郵件,然後將所有電子郵件路由到現在的內部 SMTP 伺服器。這是 3 個不同的電子郵件域。如何設置 Postfix cnfg 來實現這一點?我用Google搜尋了這個並沒有找到適合的解決方案。我有一個現有的 Ubuntu 16.04 機器,目前用作 SSH 網關,並且希望將同一台機器用於 smtp-gateway/smarthost。
通過主要和備用 Internet 連接路由傳入電子郵件就像在 DNS 中設置正確的 MX 優先級記錄一樣簡單:
example.com. 86400 IN MX 10 mx1.example.com. example.com. 86400 IN MX 20 mx2.example.com. mx1.example.com. 86400 IN A <ip-on-primary-internet-connection> mx1.example.com. 86400 IN A <ip-on-secondary-internet-connection>
與您的其他域類似:
example.net. 86400 IN MX 10 mx1.example.com. example.net. 86400 IN MX 20 mx2.example.com.
在 Postfix 中,您需要一個配置來接受來自 example.com 和 example.net 的傳入郵件以進行中繼,而不是本地傳遞,並將其路由到正確的內部伺服器。或多或少有以下幾點:
將 example.com 和 example.net 添加到
relay_domains
參數中:[...] relay_domains = $mydestination, example.com, example.net [...]
設置交通地圖,也在
/etc/postfix/main.cf
:[...] transport_maps = hash:/etc/postfix/transport [...]
該映射
/etc/postfix/transport
會將每個域的郵件路由到特定的 SMTP 伺服器:example.com smtp:[internalhost1.example.com] example.net smtp:[internalhost2.example.com]