Postfix

Postfix 作為智能主機?這可能嗎

  • April 12, 2017

我們在 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]

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