使用IMAP4访问Gmail账户时为何出现‘invalid credentials’错误?
解决Gmail IMAP认证失败(AUTHENTICATIONFAILED)的问题
排查及修复步骤:
- 核对应用专用密码:
- 确认生成的是针对「邮件」或「自定义应用」的专用密码,别选错服务类别。
- 密码是16位无空格的纯字符串,复制粘贴时别带空格、换行,确保完整输入。
- 检查账号安全设置:
- 确认2FA(双重验证)确实处于开启状态——应用专用密码只在2FA启用时生效,要是不小心关了赶紧打开。
- 登录Google账号的「最近活动」页面,看看有没有未确认的登录请求,新设备首次连接可能需要手动授权。
- 代码细节校验:
- 确保
user变量是完整的Gmail地址,别漏了@gmail.com或者拼错账号名。 - 可以显式指定IMAP端口993,修改代码为
my_mail = imaplib.IMAP4_SSL(imap_url, 993),避免端口匹配问题。
- 确保
- 特殊场景处理:
- 如果你用的是工作/教育版Gmail(G Suite),得联系管理员确认是否允许第三方应用通过IMAP访问,有些管理员会限制应用专用密码的使用。
- 先在浏览器登录Gmail,确认账号没被锁定、不需要额外安全验证(比如短信验证码)。
优化后的代码示例(增加错误捕获)
import imaplib import email import os from datetime import datetime, timedelta user = "你的完整Gmail地址@gmail.com" password = "你的16位应用专用密码" imap_url = 'imap.gmail.com' try: my_mail = imaplib.IMAP4_SSL(imap_url, 993) my_mail.login(user, password) print("登录成功") except imaplib.IMAP4.error as e: print(f"登录失败: {e}")
内容的提问来源于stack exchange,提问作者Adam Roberts
相关产品推荐
相关产品推荐

