Python连接Gmail IMAP遇WinError 10060超时错误求助
WinError 10060连接超时错误排查与解决办法
问题场景
在IDLE环境中使用专门创建的Gmail账号运行以下Python代码:
import imaplib, email, os user = 'mail' password = 'pass' imap_url = 'imap.gmail.com' con = imaplib.IMAP4_SSL(imap_url) con.login(user,password) print(con.list())
网络状态良好,但运行时先出现省略号,随后抛出超时错误:
Traceback (most recent call last): File "C:/Users/vinee/AppData/Local/Programs/Python/Python311/Email downloader.py", line 1, in <module> import imaplib, email, os File "C:\Users\vinee\AppData\Local\Programs\Python\Python311\email.py", line 7, in <module> mail = imaplib.IMAP4_SSL('imap.gmail.com','992') File "C:\Users\vinee\AppData\Local\Programs\Python\Python311\Lib\imaplib.py", line 1323, in __init__ IMAP4.__init__(self, host, port, timeout) File "C:\Users\vinee\AppData\Local\Programs\Python\Python311\Lib\imaplib.py", line 202, in __init__ self.open(host, port, timeout) File "C:\Users\vinee\AppData\Local\Programs\Python\Python311\Lib\imaplib.py", line 1336, in open IMAP4.open(self, host, port, timeout) File "C:\Users\vinee\AppData\Local\Programs\Python\Python311\Lib\imaplib.py", line 312, in open self.sock = self._create_socket(timeout) File "C:\Users\vinee\AppData\Local\Programs\Python\Python311\Lib\imaplib.py", line 1326, in _create_socket sock = IMAP4._create_socket(self, timeout) File "C:\Users\vinee\AppData\Local\Programs\Python\Python311\Lib\imaplib.py", line 302, in _create_socket return socket.create_connection(address) File "C:\Users\vinee\AppData\Local\Programs\Python\Python311\Lib\socket.py", line 850, in create_connection raise exceptions[0] File "C:\Users\vinee\AppData\Local\Programs\Python\Python311\Lib\socket.py", line 835, in create_connection sock.connect(sa) 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
错误原因分析
- 端口号错误:报错显示代码实际使用了端口
992,但Gmail的IMAP SSL标准端口是993,端口不匹配直接导致连接失败。 - 模块命名冲突:脚本目录下存在自定义的
email.py文件,和Python标准库的email模块重名,导致导入时优先加载了自定义文件,引发后续连接逻辑混乱。 - Gmail权限限制:Gmail默认禁止普通密码登录IMAP服务,未开启对应权限会被拒绝连接。
- 网络拦截:本地防火墙、杀毒软件或运营商可能拦截了993端口的出站请求,导致连接超时。
解决办法
- 修正端口号:显式指定正确的IMAP SSL端口
993,修改代码:con = imaplib.IMAP4_SSL(imap_url, 993) - 解决命名冲突:将自定义的
email.py重命名为email_downloader.py等非标准库名称,同时删除目录下的email.pyc缓存文件。 - 配置Gmail权限:
- 未开启两步验证:登录Gmail账户,进入「安全性」设置,开启「不太安全的应用访问」(用完建议关闭,或改用应用专用密码提升安全性)。
- 已开启两步验证:在Google账户「安全性」中生成应用专用密码,用该密码替代原登录密码。
- 排查网络拦截:
- 暂时关闭本地防火墙、杀毒软件,测试连接是否恢复。
- 用命令提示符执行
telnet imap.gmail.com 993,若能连通则端口正常,否则需调整防火墙规则或联系运营商。
内容的提问来源于stack exchange,提问作者Harshil Shah
相关产品推荐
相关产品推荐

