无法通过端口587从EC2实例发送电子邮件

我已经为使用Celery和RabbitMQ发送电子邮件(使用gmail)的烧瓶应用程序编写了邮件服务。 芹菜消费者和生产者沟通好,但我不能发送电子邮件。 我得到一个socket.error:[Errno 101]networking无法访问。

我认为这意味着AWS阻塞了端口587 – 尽pipe在我的安全组中我打开了端口587和25(入站和出站)。

为什么会发生这种情况? 任何帮助将不胜感激。

如果aws防火墙包装器拒绝tcp / 587,可以使用ec2 api工具打开:

ec2-authorize [sec-group-id] -P tcp -p 587 -s 0.0.0.0/0

虽然听起来你已经打开了这个。 validation,运行

ec2-describe-group [sec-group-id]

关于icmp没有响应,你可以通过以下方式打开:

ec2-authorize [sec-group-id] -P icmp -t -1:-1 -s [your-public-ip] / 32

要使用Gmail SMTP服务从AWS EC2发送电子邮件,请按以下步骤操作。

  1. 编辑EC2实例的安全组。
  2. 编辑安全组的入站规则。
  3. 在入站规则中添加587端口。 见下图。

在这里输入图像说明

你需要设置你的实例入站规则

之后,您可以使用AWS EC2的587 SMTP端口发送电子邮件。

请阅读这篇文章。 https://support.google.com/accounts/answer/6010255?hl=en

https://myaccount.google.com/lesssecureapps