Linux

Postfix——將郵件投遞到兩台不同伺服器上的相同地址

  • May 30, 2012

我們目前正在將我們的公司電子郵件伺服器(Postfix/Cyrus,帶有 OpenLDAP 後端)從一個盒子遷移到另一個位於異地的盒子。在我進行完全切換之前,我希望先遷移一兩個我們的最大音量(也是最響亮的抱怨),因為如果在我的配置和測試中以某種方式遺漏了任何問題,它們將是一定要讓我知道。

所有傳輸映射目前都儲存在 ldap 中。我創建了一個單獨的、可散列的傳輸映射,並將 Postfix 配置為使用它,如下所示:

transport_maps = hash:/etc/postfix/oldmail_transport,ldap:trans

在 /etc/postfix/oldmail_transport 中,我有:

user1@domain.com :[newmailserver.domain.com]
user2@domain.com :[newmailserver.domain.com]

domain.com 存在於兩台伺服器上的 virtual_alias_domains 中。

問題是,這行不通。舊的郵件伺服器看到 user1@domain.com 是一個本地地址,將郵件傳遞給它,並在那裡結束。似乎使傳輸映射正常工作的唯一方法是從舊伺服器上的 virtual_alias_domains 中刪除 domain.com,這當然會中斷向該域上所有其他使用者的傳遞。

我在這裡正確使用了 transport_maps 嗎?我應該使用另一種方​​法來使 postfix 做我想要的嗎?

在此先感謝您的幫助!

我可以建議另一種方法嗎?

對於 POP/IMAP 連接處理,請使用Perdition。它將 POP/IMAP 流量代理到正確的伺服器,對最終使用者透明。後端伺服器查找並由 LDAP、文本文件或您想要使用的其他方法進行。因此,使用 Perdition,您可以將使用者從舊伺服器一個一個地遷移到新伺服器,而他們甚至不會注意到。只需創建一個腳本,將郵件從舊伺服器遷移到新伺服器,然後更新 LDAP/文本文件/告訴 Perdition 使用者剛剛遷移的任何內容。

過去,我使用這種方法遷移了 50 000 - 100 000 個使用者帳戶之間的一些東西,使用者沒有明顯的停機時間。

對於 SMTP,郵件伺服器查找很簡單,您似乎已經通過 LDAP 執行這些查找。:)

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