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

Django应用Email后端异常:Gmail发送用户激活邮件失败求助

Django配置Gmail发激活邮件失败(535认证错误)解决方案

问题原因

Gmail早在2022年就取消了“不太安全的应用”访问权限,现在直接用账号密码登录第三方应用(比如Django的SMTP客户端)会触发535认证失败错误,这是Google的安全政策变更导致的,和Django本身无关。

解决方法

方法一:用应用专用密码(简单易操作,推荐)

  • 前置条件:你的Google账号必须开启两步验证
  • 操作步骤:
    1. 登录Google账号,进入安全设置页面
    2. 找到「应用专用密码」选项(只有开了两步验证才会显示)
    3. 生成一个针对Django的专用密码(可以命名为"Django邮件")
    4. 修改Django项目的settings.py配置:
      EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
      EMAIL_HOST = 'smtp.gmail.com'
      EMAIL_PORT = 587
      EMAIL_USE_TLS = True
      EMAIL_HOST_USER = '你的Gmail邮箱地址'
      EMAIL_HOST_PASSWORD = '刚生成的应用专用密码'  # 注意不是你的账号登录密码
      

方法二:启用OAuth2认证(生产环境更安全)

如果没法开两步验证,或者想要更安全的认证方式,可以用OAuth2:

  • 操作步骤:
    1. 登录Google Cloud控制台,新建一个项目
    2. 搜索并启用「Gmail API」
    3. 创建OAuth 2.0客户端ID,选择「桌面应用」类型
    4. 下载客户端配置的JSON文件
    5. 安装django-oauth2-mail这类第三方库,替换Django默认的SMTP邮件后端
    6. 按照库的文档完成授权流程,获取并配置刷新令牌

额外排查点

  • 绝对不能直接填Gmail账号的原始登录密码,必须用应用专用密码或OAuth令牌
  • 检查EMAIL_USE_TLS是否设为True,端口对应587;如果用SSL的话,设EMAIL_USE_SSL=True,端口465
  • 登录网页版Gmail,确认账号没有被锁定,也没有未处理的异常登录提醒

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:12:26