python - socket.error:[Errno 10060]:无法使用 python 从 Outlook 发送电子邮件
问题描述
我下面的代码可以正常工作几个月。现在,它给了我下面的错误,
socket.error: [Errno 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应
sender = 'myemail@email.com'
receiver = ['myemail@email.com',]
msg = MIMEMultipart()
print("Sending an email to {} ...".format(receiver))
msg['From'] = sender
msg['To'] = ", ".join(receiver)
msg['Subject'] = 'Automation Testing'
body = 'Hello,'
msg.attach(MIMEText(body, 'plain'))
# filename = 'Fidelity-Success' + timestamp + '.png'
attachment = open('C:\\mydrive\\{}'.format(filename), 'rb')
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
# part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= " + filename)
msg.attach(part)
server = smtplib.SMTP('mail.email.com', 587, timeout=120)
#server = smtplib.SMTP_SSL('mail.email.com', 93, timeout=120)
server.starttls()
server.login(sender, "password")
text = msg.as_string()
server.sendmail(sender, receiver, text)
# server.quit()
time.sleep(4)
print("Email sent.")
我尝试了各种端口和超时,但没有运气。我不知道为什么它突然停止工作。
非常感谢任何帮助。
解决方案
出现网络问题。我只需要添加邮件和 smtp 服务器的 IP。
临时修复:在管理员模式下在命令提示符下运行以下命令:
route add 'IP of mail server' mask 255.255.255.255 'default gateway of your machine'
route add 'IP of smtp server' mask 255.255.255.255 'default gateway of your machine'
永久修复:要求网络团队将邮件服务器的 IP 添加到拆分隧道。
推荐阅读
- javascript - 如何在 IntelliJ Idea 中调试 NodeJS 应用程序?
- sql - 选择列中一个值最高的所有行(和列)
- java - 如何将 Drools 决策表(excel 电子表格)转换为 Drools 中的(csv)文件?
- java - java.lang.IndexOutOfBoundsException:索引:1,大小:1 错误?
- excel - 在表格中使用 MODE.SNGL 会导致参考错误
- javascript - 破解 p5js 画布以启用阴影
- user-interface - LUIS:编辑从 Azure 下载的项目
- javascript - 从具有相同对象键的平面数组构建分组嵌套数组
- php - (proxy_fcgi:error) AH01071: Got error 'Unable to open primary script:' (没有这样的文件或目录)
- c - 实现重叠快捷方式