Exim

從 exim 發送一封電子郵件到另一個 SMTP 伺服器,剝離本地信封

  • April 10, 2014

我管理最近切換到 AWS/EC2 的服務,但我們有幾個 IP 地址具有良好的電子郵件聲譽,我們希望繼續通過這些地址發送電子郵件。我們已將 exim 設置為 EC2 實例上的衛星,以便在該機器上本地使用 sendmail 發送的電子郵件將通過我們現有的 AWS 外部 SMTP 伺服器發送。這很好用。

唯一的問題是我們的電子郵件在消息信封中沒有 AWS/EC2 主機名。這會導致將電子郵件報告為垃圾郵件並發送到 AWS 的人出現問題。例如,這是我不想存在的範例標題:

   Received: from ec2-XX-XX-XXX-XXX.compute-1.amazonaws.com ([XX.XX.XXX.XXX]:XXXXX helo=www2.server.com)
       by server.com with esmtpsa (TLSv1:DHE-RSA-AES128-SHA:128
       (Exim 4.80.1)
       (envelope-from <bounce@server.com>)
       id XXXXXX-0003Sm-Ex
       for user@host.com; Wed, 09 Apr 2014 11:52:43 -0400
   Received: from www-data by www2.server.com with local (Exim 4.80)
       (envelope-from <bounce@server.com>)
       id XXXXXX-0003Kv-9F
       for user@host.com; Wed, 09 Apr 2014 11:52:43 -0400

我不介意第二個Received標題,但我需要刪除第一個。反正有設置嗎?

更新:似乎headers_remove: Received是正確的指令使用。但我不完全確定將它放在配置文件中的哪個位置(實際上使用 WHM/CPanel 來管理此伺服器)。

這是headers_remove: Received我一直在尋找的選擇。起初我在衛星伺服器上嘗試過,但是這當然不起作用,因為這些特定Received的標頭在智能主機伺服器實際接收到這些標頭之前沒有添加。所以它需要屬於智能主機的 exim 配置。

這個指令需要把它放在一個路由器中,但是由於這個伺服器是由 CPane/WHM 管理的,它鎖定了 exim 配置文件的一部分,所以這很複雜。解決方案是創建一個在預定義路由器之前執行的新路由器。該路由器是我想要修改的路由器的副本,但headers_remove添加了此選項。保存並重新啟動,一切正常。

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