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

Tah*_*fiz 6 email smtp gmail amazon-ec2

我为我们的 Flask 应用程序编写了一个邮件服务,它使用 Celery 和 RabbitMQ 发送电子邮件(使用 gmail)。我已经让芹菜消费者和生产者沟通良好,但我无法发送电子邮件。我收到一个 socket.error: [Errno 101] 网络无法访问。

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

发生这种情况有什么原因吗?任何帮助将不胜感激。

nan*_*doP 2

如果 aws 防火墙包装器拒绝向全世界发送 tcp/587,则可以使用 ec2 api 工具打开它:

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

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

ec2-描述组 [sec-group-id]

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

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