从EC2发送电子邮件到AWS SES,没有弹性IP

时间:2015-02-11 04:44:21

标签: python email amazon-web-services amazon-ec2 flask

我在EC2上的Python Flask上运行了一个小应用程序。客户一直抱怨没有收到系统电子邮件。我在EC2上有生产应用程序负载平衡。我刚刚注意到,一旦每台服务器都有弹性IP,电子邮件的可靠性似乎会提高。由于我有一个负载均衡器,我通常不会将IP分配给生产机器,只将弹性IP分配给测试机器,并且仅在生产时将ip地址分配给生产,以便在我不需要测试时保持它不需要额外费用环境。

每个服务器是否需要一个弹性IP,每个服务器在需要时都与电子邮件服务器(SES)通信?

注意:我的AWS区域不提供SES。

1 个答案:

答案 0 :(得分:3)

我猜你正在使用sendmail发送电子邮件,对吗?

根据Amazon SES Docs

  

(可选)如果您是通过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实例发送电子邮件及其问题的所有细节。即使它已经过时了,我相信反向查找现在比以往任何时候都更适用于打击垃圾邮件。