我在EC2上的Python Flask上运行了一个小应用程序。客户一直抱怨没有收到系统电子邮件。我在EC2上有生产应用程序负载平衡。我刚刚注意到,一旦每台服务器都有弹性IP,电子邮件的可靠性似乎会提高。由于我有一个负载均衡器,我通常不会将IP分配给生产机器,只将弹性IP分配给测试机器,并且仅在生产时将ip地址分配给生产,以便在我不需要测试时保持它不需要额外费用环境。
每个服务器是否需要一个弹性IP,每个服务器在需要时都与电子邮件服务器(SES)通信?
注意:我的AWS区域不提供SES。
答案 0 :(得分:3)
我猜你正在使用sendmail
发送电子邮件,对吗?
(可选)如果您是通过Amazon ECES实例从Amazon SES发送电子邮件,则可能需要为Amazon EC2实例分配弹性IP地址,以便接收ISP接受您的电子邮件。有关详细信息see Amazon EC2 Elastic IP Addresses.)
我建议远离sendmail
并使用Boto与SES集成,或通过SMTP从您的Python应用程序向Amazon发送电子邮件。
<强>更新强>
来自Michael - sqlbot的评论让我想进一步调查,这是我找到的。
我记得在电子邮件中了解反向DNS查询,并发现了以下内容:
亚马逊现在有一个新的电子邮件策略,其中阻止出站SMTP流量(超出微小的使用范围)。为了能够直接从EC2发送电子邮件,您还需要为您的实例配置弹性IP地址。亚马逊将努力保留常见反垃圾邮件列表中的弹性IP。
以及
亚马逊已宣布推出新的私有测试版,他们将为您的弹性IP地址设置PTR记录。
取自Sending Email from EC2。本文解释了从EC2实例发送电子邮件及其问题的所有细节。即使它已经过时了,我相信反向查找现在比以往任何时候都更适用于打击垃圾邮件。