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

Django可正常登录Gmail但SMTP配置下无法发送邮件如何解决

解决方案

1. 优先排查Gmail账号安全配置

谷歌从2022年开始已全面关闭普通个人账号的「低安全性应用访问」开关,如果你之前直接使用账号登录密码作为SMTP密码,现在会被静默拦截:

  • 先为你的Google账号开启两步验证
  • 进入Google账号「安全」页,找到「应用密码」入口,生成16位专用应用密码,替换掉EMAIL_HOST_PASSWORD的原有值(不要用日常登录密码)
  • 如果你使用的是Google Workspace账号,请联系域管理员检查SMTP发信权限、发件人白名单配置

2. 补全Django邮件配置

你当前的配置缺少默认发件人参数,Gmail会拦截发件人与认证账号不一致的请求,且不会返回错误提示,请在settings.py中补充:

DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER

密码重置功能默认会调用DEFAULT_FROM_EMAIL作为发件人,未配置时会触发静默拦截。

3. 本地调试排查具体错误

进入Django shell执行测试发信代码,开启错误提示定位问题:

from django.core.mail import send_mail

send_mail(
    subject='测试邮件标题',
    message='测试邮件内容',
    from_email=EMAIL_HOST_USER,
    recipient_list=['你的测试收信邮箱地址'],
    fail_silently=False
)

执行后如果有报错可以直接根据错误信息定位,如果无报错但未收到邮件,检查Google账号安全页是否有未授权的访问提醒,手动确认放行即可。

4. 密码重置场景专项检查

  • 检查密码重置邮件模板是否包含大量链接、敏感词触发Gmail反垃圾规则,可先替换为纯文本简单内容测试
  • 确认密码重置视图没有自定义发件人参数覆盖了全局配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:48:02