Linux

將一個域的所有電子郵件轉發到單個帳戶或文件,但正確傳送其他域

  • March 19, 2015

我有一個使用 Postfix 發送電子郵件的 Linux 伺服器。它在動態 ip 上,所以我使用“relayhost”參數通過 ssh 隧道將外發郵件發送到靜態 ip 上的另一台伺服器,然後從那裡發送到現實世界。自 1998 年左右以來,這一直執行良好。

我目前正在為客戶開發一些軟體,它根據數據庫中的資訊向該客戶組織中的各個人員發送電子郵件。在我最初的測試中,我創建了假冒的人,他們都擁有像 ptomblin+client1@{mydomain}.com 這樣的電子郵件地址,它們執行良好並將所有電子郵件都發送給了我。但現在我正在使用一個實時數據庫,所有的電子郵件地址都是為客戶組織中的真實人員提供的。我並不特別想向那些告訴他們他們請求的系統訪問權限已被配置的人發送電子郵件,因此我想要一種方法將所有電子郵件重定向到該客戶的域到我的電子郵件地址或文件。

如果我理解正確,您希望將所有發往 example.com 的郵件發送到您的郵件地址或文件,而不是轉發到 relayhost 中指定的伺服器:

**第 1 步:**將 example.com 添加到mydestinationmain.cf 中,以便將發往 example.com 的郵件發送到本地。

**第 2 步:**為 example.com 設置一個包羅萬象,並將所有電子郵件發送到您的郵件地址或文件。例如,您可以使用 postfix pcre 來實現此目的。

擴展步驟 2

在許多其他方法中,使用 postfix pcre 只是實現此目的的一種方法。根據garisson 的本教程

  1. 創建一個本地使用者 mylocaluser 和它的郵箱或 maildir
  2. 創建一個名為 aliases-pcre 的文件,其內容為:
/@example\\.com$/ mylocaluser

將以下行添加到 main.cf(如果 main.cf 在 /etc/postfix 中):

alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases, pcre:/etc/postfix/aliases-pcre
  1. 重啟後綴

現在,所有發往 *@example.com 的郵件都應該轉到 mylocaluser 郵箱/maildir。

同樣,這只是一個例子。您可以使用最適合您需要的任何其他方法。我傾向於使用 pcre 很多,因為它允許更複雜的正則表達式。


但是,上述方法不起作用,因為您需要虛擬域。

這是一個最小的範例配置:

(main.cf)
alias_database = hash:/etc/aliases
local_recipient_maps = 
relayhost = myotherserver.example.com
virtual_alias_maps = pcre:/etc/postfix/aliases-pcre
virtual_alias_domains = example.com
mydestination = localhost

文件/etc/postfix/aliases-pcre

/@example\.com$/ somelocaluser

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