You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python发送Gmail遇TimeoutError[WinError10060]问题求助

解决Gmail发送邮件超时错误(WinError 10060)

问题根源及修复步骤

1. 修正代码中的拼写错误

你的代码里存在多处拼写错误,这是导致连接失败的核心原因:

  • SMTP服务器地址写错:smtp.gamil.com → smtp.gmail.com
  • 邮箱域名写错:所有gamil.com都要改为**gmail.com**(发件人、收件人地址均需修正)
  • 邮件格式换行问题:原代码中message的换行使用空行,建议用\n\n明确分隔主题和正文,避免邮件显示异常

修正后的代码:

import smtplib as s

# 正确的SMTP服务器地址
ob = s.SMTP("smtp.gmail.com", 587)
ob.ehlo()
ob.starttls()
# 修正后的发件人邮箱
ob.login('pawarpraful950@gmail.com', '你的应用专用密码')
subject = "test python"
body = "I love python"
# 规范邮件格式:主题后用\n\n分隔正文
message = f"Subject: {subject}\n\n{body}"
# 修正后的收件人邮箱
listadd = ['pnp950@gmail.com']
ob.sendmail('pawarpraful950@gmail.com', listadd, message)
print("邮件发送成功")
ob.quit()

2. 配置Gmail安全权限

Gmail默认禁止普通密码直接通过第三方应用登录,需做以下设置:

  • 启用两步验证:登录Google账号→【安全】→开启【两步验证】
  • 生成应用专用密码:在两步验证下方找到【应用专用密码】,输入自定义名称(如"Python邮件"),生成的密码即为代码中login方法的第二个参数(无需输入空格)

3. 排查网络问题

如果修正后仍超时,检查以下内容:

  • 本地防火墙/杀毒软件是否拦截了587端口的出站连接,暂时关闭测试
  • 公司/学校网络可能存在代理或端口限制,切换到个人热点尝试
  • 尝试改用SSL连接(端口465)替代TLS(587),代码修改如下:
# 使用SMTP_SSL直接建立加密连接
ob = s.SMTP_SSL("smtp.gmail.com", 465)
# 无需调用starttls()
ob.login('pawarpraful950@gmail.com', '你的应用专用密码')

内容的提问来源于stack exchange,提问作者user20017494

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 04:35:36