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

Python配置Gmail SMTP失败,出现[Errno 10060]连接超时错误求助

解决Gmail SMTP连接失败(Errno 10060)的问题

看起来你遇到的是Gmail SMTP服务的连接超时问题,这个错误通常和网络限制、账户安全设置或者代码本身的疏漏有关。我帮你梳理几个常见的解决思路:

一、先排查网络层面的问题

Errno 10060本质是连接超时,说明你的机器没法正常访问smtp.gmail.com的587端口。你可以先做个简单测试:

  • 打开命令提示符(Windows)或终端(Mac/Linux),输入telnet smtp.gmail.com 587
  • 如果提示“无法打开连接”,那大概率是:
    • 你的防火墙/杀毒软件拦截了出站的587端口请求,去对应的安全软件里添加允许规则
    • 你的ISP(网络服务商)屏蔽了587端口,这种情况可以试试换用465端口(SMTP_SSL协议)
    • 你处于代理网络下,需要在代码里配置代理参数(比如用smtplib.SMTP的proxy_host和proxy_port)

二、调整Gmail账户的安全设置

现在Google默认限制普通第三方应用直接登录Gmail SMTP,你需要根据自己的账户情况调整:

  • 如果没开启两步验证(2FA):
    登录你的Google账户,进入「安全性」页面,找到「不太安全的应用访问」选项,开启这个开关(注意:这个选项可能默认隐藏,需要先搜索启用)
  • 如果开启了两步验证:
    不能直接用邮箱密码登录,需要生成「应用专用密码」:
    1. 进入Google账户的「安全性」页面
    2. 找到「应用专用密码」(需要先确认你已开启2FA)
    3. 生成一个专门用于SMTP的密码,用这个密码代替你的普通邮箱密码在代码中登录

三、修正你的Python代码

你的现有代码缺少了关键的TLS加密步骤,587端口是需要先启用STARTTLS才能正常通信的。另外注意Python版本的语法差异:

Python 3 示例代码

import smtplib

try:
    # 分开主机和端口参数,可读性更好
    server = smtplib.SMTP("smtp.gmail.com", 587)
    server.ehlo()
    # 启用TLS加密,这一步是587端口必需的
    server.starttls()
    server.ehlo()  # 再次发送ehlo确认加密连接
    # 登录:这里填你的Gmail邮箱和对应的密码/应用专用密码
    server.login("your_email@gmail.com", "your_auth_password")
    print("SMTP连接设置成功!")
    # 后续可以添加发送邮件的逻辑
    server.quit()
except Exception as t:
    print(f"设置失败: {t}")

如果587端口还是不行,试试465端口(SMTP_SSL)

import smtplib
from smtplib import SMTP_SSL

try:
    # 465端口直接使用SSL加密连接
    server = SMTP_SSL("smtp.gmail.com", 465)
    server.ehlo()
    server.login("your_email@gmail.com", "your_auth_password")
    print("SMTP连接设置成功!")
    server.quit()
except Exception as t:
    print("设置失败")
    print(t)

如果你还在使用Python 2

注意把print语句调整为Python 2的语法,比如print '设置失败',同时字符串拼接用"设置失败: " + str(t)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 13:32:40