Debian

使用 Amazon SES 和 Exim4 從一個實例上的多個主機發送郵件

  • August 7, 2012

假設我有一些實例在 Amazon EC2 中執行:

somehost.example.com

此實例託管其他域的一些應用程序或網站:

www.example.com
web.example.org
etc.

此主機配置為使用 exim4 與 Amazon SES 互動以發送郵件。在 Amazon SES 中,每個域都被單獨允許作為有效發件人:

www.example.com
web.example.org
etc.

但是,正如人們所期望的那樣,實例的 FQDN 和執行使用者被用作每封電子郵件的發件人,因此所有電子郵件似乎都來自:

www-data@somehost.example.com

我當然可以將 Amazon SES 配置為允許來自 somehost.example.com 的郵件,並且我可以進一步'From: "Whoever" <whoever@example.com>'在應用程序級別為電子郵件添加信封。

我想知道的是,(a)這是一個可接受的解決方案,如果不是,(b)我可以探索什麼配置來顯示每個域(例如 example.com)的郵件似乎直接來自“something.example .com”伺服器而不是實際的主機。我假設這涉及創建一個 hostname.example.com DNS 條目並將其指向伺服器,但除此之外,我迷失在如何設置 exim 或應用程序以允許這樣做。

您可以配置 exim 以隱藏外發郵件中的本地郵件名稱。此外,您應該配置您的主 exim 伺服器以使用智能主機,在本例中是 amazon SES 的東西。

假設每個站點都在自己的虛擬伺服器www.example.com ( 192.0.2.1 ) 和web.example.com ( 192.0.2.2 ) 上執行,而您的電子郵件伺服器在另一個虛擬伺服器smtp.example.com ( 192.0 .2.10 )。

要重新配置 exim4,您可以執行:

dpkg-reconfigure exim4-config

在主郵件伺服器 smtp.example.com 上進行如下配置(我只列出了相關的):

  • 郵件配置一般類型:smarthost發送的郵件;通過 SMTP 或 fetchmail 接收
  • 系統郵件名稱:smtp.example.com
  • 轉發郵件的機器:192.0.2.1;192.0.2.2
  • 傳出智能主機的 IP 地址或主機名:THE_AMAZON_SES_IP
  • 在外發郵件中隱藏本地郵件名稱?是的
  • 本地使用者可見域名:example.com

在其他伺服器上像這樣配置 exim,使用 www.example.com 作為範例主機:

  • 郵件配置一般類型:smarthost發送的郵件;沒有本地郵件
  • 系統郵件名稱:www.example.com
  • 接受郵件的其他目的地:LEAVE_EMPTY <–這將導致“啟用在外發郵件中隱藏本地郵件名稱的選項”
  • 本地使用者可見域名:www.example.com
  • 出局smarthost的IP地址或主機名:192.0.2.10

如果您只有一台伺服器,則忽略第二步。您的主伺服器應該發送隱藏本地伺服器名稱的電子郵件,並將它們發送為來自 example.com。

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