首次使用smtplib库出现TimeoutError: [WinError 10060]错误求解决
解决SMTP连接超时错误(WinError 10060)
我跟着教程编写代码,仅替换了个人邮箱信息,和导师代码完全一致,但运行时出现超时错误,错误信息如下:
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
我的代码:
import smtplib my_email = "my.python@gmail.com" my_password = "xxx" with smtplib.SMTP("smtp.gmail.com") as connection: connection.starttls() connection.login(user=my_email, password=my_password) connection.sendmail(from_addr=my_email, to_addrs="my.python@yahoo.com", msg="Subject: Hello Buddy\n\n Here's me reaching out to you")
解决方法
- 指定SMTP端口:Gmail的SMTP服务默认端口为587,修改代码为
smtplib.SMTP("smtp.gmail.com", 587),未指定端口是导致连接超时的常见原因 - 排查网络与防火墙:确认网络能正常访问Gmail服务器,防火墙或杀毒软件可能拦截了SMTP连接,可暂时关闭相关软件测试
- 启用应用专用密码:若账号开启了两步验证,普通密码无法登录SMTP服务,需前往Google账号设置页面生成应用专用密码,替换代码中的
xxx - 调整账号安全设置:如果未开启两步验证,可尝试开启Gmail账号的“允许低安全性应用访问”(此方法安全性较低,优先推荐应用专用密码)
- 改用SSL连接:尝试使用
smtplib.SMTP_SSL("smtp.gmail.com", 465),无需调用starttls(),直接建立SSL加密连接,部分网络环境下能解决超时问题
内容的提问来源于stack exchange,提问作者Mulla
相关产品推荐
相关产品推荐

