在win上能跑通的发邮件python脚本部署到ubuntu上失败:
win上原来写的代码:
try:
server = smtplib.SMTP()
server.connect(smtp_server, 25)
server.login(from_addr, password)
self.edit_email()
server.sendmail(from_addr, to_addr, self.m.as_string())
server.quit()
self.logger.info(f'EMAIL SUCCESSFULLY SENT TO {to_addr}')
except smtplib.SMTPException:
self.logger.error("EMAIL FAILED")
这段代码甚至并不报错,直接死循环无反应,强制打断后返回:
Traceback (most recent call last):
File "test.py", line 295, in <module>
mer.send_email(to_addr=args.email) # 这里传email
File "test.py", line 239, in send_email
server.connect(smtp_server, 25)
File "/usr/local/lib/python3.8/smtplib.py", line 339, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/usr/local/lib/python3.8/smtplib.py", line 1054, in _get

将能在Windows上成功运行的Python SMTP邮件发送脚本迁移到Ubuntu时遇到问题,脚本在Ubuntu上出现死循环无响应。解决方法是由于Windows使用TCP的25端口,而Linux则需要使用SSL协议。通过修改代码,将端口和协议改为适用于Linux的SSL,问题得到解决。
最低0.47元/天 解锁文章
896

被折叠的 条评论
为什么被折叠?



