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

Django用Gmail SMTP发邮件遇认证错误,无法关闭对应安全选项

Django使用Gmail SMTP发送邮件报错535的解决方法

问题背景

我在Django项目中尝试用Gmail发送邮件,相关配置与代码如下:

settings.py 配置

EMAIL_HOST_USER = os.getenv('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = os.getenv('EMAIL_HOST_PASSWORD')
EMAIL_PORT = 587
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True

发送邮件函数

def notify_user(email_address, subject='Subject', message='Some message!') -> None:
    send_mail(
        subject,
        message,
        settings.EMAIL_HOST_USER,
        [email_address],
        fail_silently=False
    )

我了解需要关闭Gmail的某安全选项,但操作时被Gmail拒绝,最终触发以下错误:

raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8  https://support.google.com/mail/?p=BadCredentials f14-20020a056512360e00b00492bbf7db8asm320697lfs.85 - gsmtp')

解决方案

目前Gmail已彻底停用个人账号的“允许不够安全的应用”选项,无法再关闭该限制,你可以通过以下两种方式解决:

方式一:使用应用专用密码(推荐)

  1. 先给你的Gmail账号开启两步验证(必须开启才能生成应用专用密码)
  2. 进入Google账号安全设置,找到“应用专用密码”选项
  3. 选择“邮件”作为应用类型,设备可选择“其他”并自定义名称
  4. 生成后会得到一个16位的密码,将这个密码替换到EMAIL_HOST_PASSWORD环境变量中即可

方式二:改用Google Workspace账号

如果你的账号是Google Workspace(企业版)账号,仍可在后台开启“允许不够安全的应用”选项,个人账号无此权限。

另外,你当前的Django邮件配置(SMTP地址、端口、TLS设置)是正确的,无需修改。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 06:45:16