出於開發目的,我們想要設定一個郵件伺服器(後綴),它將透過特定 SMTP 帳戶發送的所有郵件定向到同一帳戶。
編輯:郵件將不再寄至原地址。
所以我們會為不同的項目建立不同的帳戶,一個項目的所有郵件都會到一個郵箱。
我們目前使用這個解決方案:重寫所有(除一名收件者外)外寄電子郵件的收件人
但是我們如何根據 SMTP AUTH 帳戶使其適應不同的目標位址呢?
答案1
這裡有兩個選項:
1.使用sender_bcc_maps
Postfix中的選項。
sender_bcc_maps(預設值:空)
可選的 BCC(密件副本)地址查找表,按寄件者地址索引。當郵件從 Postfix 外部進入時,會新增 BCC 位址(不支援多個結果)。
您需要在 中加入以下內容/etc/postfix/my.cnf
:
sender_bcc_maps = hash:/etc/postfix/bcc_maps
並在/etc/postfix/bcc_maps
文件中添加所需的映射:
[email protected] [email protected]
[email protected] [email protected]
然後運行:
postmap /etc/postfix/bcc_maps
並重新啟動Postfix。
- 基於寄件者的重定向
在main.cf:
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access
並在 sender_access 檔案中:
from_address@domain redirect new_to_address@anotherdomain.
然後postmap /etc/postfix/sender_access
重啟postfix
答案2
這不回答基於SMTP認證但確實根據您的需求提供了解決方案。
我為此使用了規範映射,我設定了一個新的vps(centos/ubunbtu 等),然後將我的「開發」系統設定為smarthost 這個盒子(在網路內,192.168.0 為例)你可以使用wp -smtp 執行相同的操作或其他,我們使用 interworx,因此智慧主機效果最佳。
[root@mx ~]# cat /etc/postfix/main.conf
recipient_canonical_classes = envelope_recipient
recipient_canonical_maps = regexp:/etc/postfix/recipient_canonical_map
mynetworks = 192.168.0.0/24
header_checks = regexp:/etc/postfix/header_checks
relayhost = mailserver.example.com
[root@mx ~]# cat /etc/postfix/header_check
/^Subject: (.*?)$/ REPLACE Subject: [Dev] $1
[root@mx ~]# cat /etc/postfix/recipient_canonical_map
/./ [email protected]
*正規表示式,因此無需對檔案進行後映射。
由於這是一個開發環境,根據個人經驗,我不建議操縱您的生產來適應開發,而是建立這樣的系統來橋接這些系統。
http://www.postfix.org/postconf.5.html#recipient_canonical_maps