Postfix

如何通過 Postfix 將原始收件人傳遞給 Procmail

  • February 10, 2021

有沒有辦法在procmail中而不是通過標題來辨識電子郵件的原始收件人?

收件人可以在Bcc也可以在To/之一中Cc,我正在尋找如何獲取收件人的電子郵件地址。

我發現如果procmail是作為郵箱命令,那麼我可以ORIGINAL_RECIPIENT按照文件進入環境,但我不明白。

就像老式的郵件信件一樣,電子郵件有兩組不同的地址資訊:信封地址(如印在信封外面的地址),SMTP 伺服器使用這些地址將電子郵件路由和傳遞給預期的收件人,以及作為郵件消息的一部分的消息頭。

SMTP 信封包含RCPT TO:SMTP 事務中電子郵件消息的目的地等資訊。

消息頭(在DATASMTP 消息的有效負載中)大多僅由使用者在其郵件客戶端/網路郵件中讀取和解釋,就像在物理信件開頭附加到稱呼的日期和地址一樣。這些不用於將電子郵件消息1路由到其目的地。標To:頭是那些(不受信任的)消息標頭的一部分,甚至可以與信封上的地址完全不同。

與郵局不同,SMTP 通常在將郵件交給使用者之前會丟棄大部分信封。

據我所知,Postfix 將 SMTP 信封收件人地址添加到郵件標頭作為X-Original-To:標頭。 是它在 SMTP 對話框中X-Original-To: 收到的地址。RCPT TO:

它通常還會添加第二個標頭,即Delivered-To: 標頭,其中包含 Mailbox Postfix 實際將郵件傳遞到的電子郵件地址。這可能會有所不同,X-Original-To:因為可能會發生多個級別的別名、虛擬地址和其他地址擴展。(見:http ://www.postfix.org/ADDRESS_REWRITING_README.html )

您應該能夠為您的 procmail 配方依賴這些標頭中的任何一個


腳註:

  1. CC:和類似的BCC:)頭是消息頭,通常應該在發送消息時由 MUA 解釋,並轉換為額外的RCPT TO:信封地址,它們通常不 被 SMTP 伺服器處理2 。
  2. 請注意,Postfix 確實以某種方式處理 Bcc 和其他一些消息頭,因為預設情況下,清理將刪除 MUA 不應包含在消息中的消息頭:Bcc、Content-Length、Resent-Bcc、Return-小路。

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