Postfix——將郵件投遞到兩台不同伺服器上的相同地址
我們目前正在將我們的公司電子郵件伺服器(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 執行這些查找。:)