基於 SMTP 驗證重寫目標位址

基於 SMTP 驗證重寫目標位址

出於開發目的,我們想要設定一個郵件伺服器(後綴),它將透過特定 SMTP 帳戶發送的所有郵件定向到同一帳戶。

編輯:郵件將不再寄至原地址。

所以我們會為不同的項目建立不同的帳戶,一個項目的所有郵件都會到一個郵箱。

我們目前使用這個解決方案:重寫所有(除一名收件者外)外寄電子郵件的收件人

但是我們如何根據 SMTP AUTH 帳戶使其適應不同的目標位址呢?

答案1

這裡有兩個選項:

1.使用sender_bcc_mapsPostfix中的選項。

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。

  1. 基於寄件者的重定向

在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

相關內容