Django配置Gmail作为send_mail后端出现SMTP认证错误如何解决
Django 配置 Gmail 作为邮件后端的可行方案
2022年5月Google下线低安全性应用访问权限后,直接使用Gmail账号登录密码连接SMTP服务的方式已经完全失效,你碰到的SMTPAuthenticationError 535报错就是这个原因导致的,不用再反复寻找已经下线的低安全应用开关。
前置要求
- 目标Gmail账号必须先开启两步验证(2FA),这是生成应用专用密码的必要前提,未开启两步验证的账号不会显示应用专用密码的生成入口。
操作步骤
- 生成应用专用密码
- 登录Gmail对应的Google账号,进入安全设置页面,找到「应用专用密码」选项(该选项仅在账号开启两步验证后可见)。
- 在应用选择下拉菜单中选择「其他(自定义名称)」,填入方便你识别的备注名,比如
Django业务邮件,点击生成按钮,系统会给出一串16位的随机密码,立刻复制保存这串密码,关闭弹窗后无法再次查看该密码。
- 更新Django配置
打开项目的settings.py文件,仅需要修改EMAIL_HOST_PASSWORD字段的值,将原来填写的Gmail账号登录密码,替换为刚才生成的16位应用专用密码即可,其余配置参数不需要调整,参考配置如下:
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 = '16位应用专用密码,填写时去掉密码显示时的分组空格' DEFAULT_FROM_EMAIL = '你的Gmail完整邮箱地址'
常见问题排查
- 如果刚生成密码就测试报认证错误,等待2-3分钟后重试即可,Google的权限同步存在短暂延迟。
- 不要尝试用账号日常登录的密码作为SMTP认证密码,该方式已被Google全面封禁,必然触发535报错。
- 如果你使用的是Google Workspace企业邮箱,需要先由域管理员在后台开启账号的SMTP服务访问权限,再按照上述流程生成应用专用密码配置即可。
内容的提问来源于stack exchange,提问作者Joanna
相关产品推荐
相关产品推荐

