在一个实例中使用Amazon SES和Exim4从多个主机发送邮件

假设我在Amazon EC2中运行了一些实例:

somehost.example.com 

此实例为其他域托pipe一些应用程序或网站:

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

此主机configuration为使用exim4与Amazon SES进行接口以发送邮件。 在Amazon SES中,每个域都被单独允许为有效的发件人:

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

但是,正如人们所期望的那样,实例的FQDN和正在执行的用户正被用作每个电子邮件的发件人,所以所有的电子邮件似乎来源于:

 [email protected] 

我当然可以将Amazon SESconfiguration为允许来自somehost.example.com的邮件,并且我还可以在应用程序级别将'From: "Whoever" <[email protected]>'信封添加到电子邮件中。

我想知道的是,(a)这是一个可接受的解决scheme,如果没有,(b)我可以探索什么configuration来显示每个域的邮件(例如example.com)直接来自“something.example .com“服务器而不是实际的主机。 我认为这涉及到创build一个hostname.example.com DNS条目并将其指向服务器,但除此之外,我迷路了如何设置exim或应用程序来允许这个。

您可以configurationexim以隐藏传出邮件中的本地邮件名称。 另外你应该configuration你的主要的exim服务器使用一个smarthost,在这种情况下是亚马逊SES的东西。

我们假设每个站点都运行在自己的虚拟服务器http://www.example.com192.0.2.1 )和web.example.com192.0.2.2 )上,并且您的电子邮件服务器位于另一个虚拟服务器smtp.example.com192.0 .2.10 )。

要重新configurationexim4,您可以运行:

 dpkg-reconfigure exim4-config 

在主电子邮件服务器smtp.example.comconfiguration如下(我只列出相关的):

  • 邮件configuration的一般types:由smarthost发送的邮件; 通过SMTP或fetchmail收到

  • 系统邮件名称:smtp.example.com

  • 用于中继邮件的机器:192.0.2.1; 192.0.2.2

  • 传出智能主机的IP地址或主机名: THE_AMAZON_SES_IP

  • 在发送邮件中隐藏本地邮件名称? 是

  • 本地用户的可见域名:example.com

在其他服务器上像这样configurationexim,使用www.example.com作为示例主机:

  • 邮件configuration的一般types:由smarthost发送的邮件; 没有本地邮件

  • 系统邮件名称:www.example.com

  • 邮件被接受的其他目的地: LEAVE_EMPTY < – 这将导致“隐藏发送邮件中的本地邮件名称的选项已启用”

  • 本地用户可见的域名:www.example.com

  • 传出智能主机的IP地址或主机名:192.0.2.10

如果你只有一台服务器,那就忽略第二步。 您的主服务器应该发送隐藏本地服务器名称的电子邮件,并将其从example.com发送出去。

您是否试图隐藏电子邮件源自EC2实例的事实? 简短的回答是,你不能。 Received:标题将包含通过networking的电子邮件path的相当完整的跟踪。 幸运的是,几乎没有人看过他们。

如果您只希望收件人查看From:标题的合理内容,请在发送电子邮件时在From:标题中join合理的内容。