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

FastAPI应用无法登录Gmail SMTP服务器:凭据无效问题求助

解决Gmail SMTP登录失败(535 5.7.8 Username and Password not accepted)的方案

我之前也碰到过一模一样的问题,折腾了好一阵才搞定,给你整理几个最可能的解决方向:

一、确认应用密码的正确性与配置前提

  • 必须开启两步验证:Gmail的应用密码只对开启了两步验证的账号生效,先去你的Google账号安全中心确认两步验证已经打开。
  • 应用密码的生成规则:
    • 生成时要选择「邮件」作为应用类型,选「其他(自定义名称)」也可以,但别选错类型
    • 16位应用密码是没有空格的,复制的时候别把空格带进去,也别手动添加空格
  • 替换代码里的密码:确保你代码里的smtp_password确实是这串16位密码,而不是你的Google账号原密码

二、检查代码里的账号与配置匹配

看你代码里的变量,这里很容易踩坑:

  • smtp_username设成了"Tokeri51",但server.login用的是sender_email,这两个必须完全一致!要么都用你的完整Gmail地址(比如tokeri51@gmail.com),要么都用账号前缀,但更稳妥的是用完整邮箱地址
  • 确认smtp_server是"smtp.gmail.com",smtp_port是587(TLS专用端口),这两个参数别写错

三、Google账号的安全限制检查

  • 别找「不太安全的应用」选项:Google已经取消了这个功能,现在只能用应用密码或者OAuth2来登录SMTP,所以不用再浪费时间找这个选项
  • 检查账号异常登录拦截:去Google账号的「最近活动」里看看有没有被拦截的登录请求,要是有的话,点击「这是我」允许该登录
  • 启用IMAP服务:去Gmail设置里的「转发和POP/IMAP」标签,确认IMAP访问已经开启(虽然SMTP是发件服务,但这个开关有时候会关联影响登录权限)

四、代码里的小细节修正

你的代码里有几个变量可能没定义全,比如sender_email、sender_password、smtp_server、smtp_port,建议直接在代码里明确赋值(正式环境推荐用环境变量):

# 测试用明确配置(正式环境建议用os.getenv读取环境变量)
smtp_server = "smtp.gmail.com"
smtp_port = 587
sender_email = "tokeri51@gmail.com"  # 你的完整Gmail地址
smtp_password = "你的16位无空格应用密码"

另外,server.login的第一个参数要和sender_email完全一致,别混用账号前缀和完整邮箱。

五、用极简代码排查问题

如果还是不行,先写个极简的测试代码排除其他干扰(比如Jinja模板、日志模块):

import smtplib
import ssl

smtp_server = "smtp.gmail.com"
port = 587
sender_email = "your-gmail-address@gmail.com"
password = "your-16-digit-app-password"
receiver_email = "test@example.com"

context = ssl.create_default_context()
try:
    server = smtplib.SMTP(smtp_server, port)
    server.ehlo()
    server.starttls(context=context)
    server.ehlo()
    server.login(sender_email, password)
    server.sendmail(sender_email, receiver_email, "Test email content")
    print("Email sent successfully!")
except Exception as e:
    print(f"Error: {e}")
finally:
    server.quit()

如果这个极简代码能成功,那就是你原来的代码里其他部分(比如模板加载、变量赋值)的问题;如果还是失败,那就是账号配置的问题,需要再仔细检查Google账号的安全设置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 09:37:34