-1

尝试使用以下代码在私有子网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

4

2 回答 2

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

电子邮件服务器配置错误,电子邮件服务器不需要登录。

mailserver = smtplib.SMTP(internal office server,25)


#mailserver.login('myid@domain.com', 'password') -- Not required for the server

谢谢你。

于 2020-12-03T13:38:49.653 回答