首页 > 解决方案 > AWS 私有子网 EC2 上的 SMTP,网络无法访问 [errorno 101]

问题描述

尝试使用以下代码在私有子网EC2 机器上的 python 脚本中使用 SMTPlib 发送电子邮件。EC2 机器通过 与内部 SMTP 服务器进行通信PORT 25,使用telnet命令进行验证。此代码在公共子网 EC2 中运行良好,但在私有子网底部引发错误。

import smtplib
from email.MIMEMultipart import MIMEMultipart  #python 2


msg = MIMEMultipart()
msg['From'] = 'myid@domain.com'
msg['To'] = 'youid@domain.com'
msg['Subject'] = 'simple email in python'
message = 'here is the email'


mailserver = smtplib.SMTP('smtp.gmail.com',25)

mailserver.ehlo()

mailserver.starttls()

mailserver.ehlo()
mailserver.login('myid@domain.com', 'password')

mailserver.sendmail('myid@domain.com','youid@domain.com',msg.as_string())

mailserver.quit()

收到此错误socket.error: errorno[101] - Network is unreachable

标签: amazon-web-servicesamazon-ec2smtpsmtplibprivate-subnet

解决方案


  • 您的 smtp 所在的私有子网中是否有 NAT 网关?
  • 您的服务器所在的私有子网上是否有活动的访问控制层?是不是阻挡了什么?
  • 还要检查公共子网中的 ACL 规则
  • 附加到服务器的安全组,它是否打开?

推荐阅读