linux/ubuntu 使用python smtp发邮件失败

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

在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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值