Postfix
當 postfix 通過 smtp 中繼時強制發送地址
我正在嘗試從我們的 AWS EC2 實例獲取電子郵件報告。我們正在使用 Exchange Online(Microsoft Online Services 的一部分)。我已經專門為SMTP 中繼設置了一個使用者帳戶,並且我已經設置了 Postfix 以滿足通過該伺服器中繼消息的所有要求。但是,除非發件人地址與身份驗證地址完全匹配(錯誤消息為
550 5.7.1 Client does not have permissions to send as this sender
),否則 Exchange Online 的 SMTP 伺服器將拒絕郵件。通過仔細配置,我可以設置我的服務以該使用者身份發送。但我不喜歡小心謹慎——我寧願讓後綴強制解決這個問題。有沒有辦法做到這一點?
這就是在後綴中真正做到這一點的方法。
此配置更改來自本地發起和中繼的 SMTP 郵件流量的發件人地址:
/etc/postfix/main.cf:
sender_canonical_classes = envelope_sender, header_sender sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps smtp_header_checks = regexp:/etc/postfix/header_check
從來自伺服器本身的電子郵件重寫信封地址
/etc/postfix/sender_canonical_maps:
/.+/ newsender@address.com
從 SMTP 中繼電子郵件中的地址重寫
/etc/postfix/header_check:
/From:.*/ REPLACE From: newsender@address.com
例如,如果您使用本地中繼 smtp 伺服器,您的所有多功能設備和多個應用程序都使用該伺服器,那將非常有用。
如果您使用 Office 365 SMTP 伺服器,發件人地址與來自經過身份驗證的使用者本身的電子郵件不同的任何郵件都將被拒絕。上面的配置可以防止這種情況。