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

使用Django通过Gmail账户发送邮件失败,如何排查解决?

Django通过Gmail发送邮件无法接收的解决方案

以下是针对你代码问题的具体修复步骤:

1. 替换普通密码为应用专用密码

Gmail目前禁止第三方应用使用账号普通密码登录SMTP服务,必须先开启两步验证,再创建应用专用密码:

  • 登录你的Google账号,开启两步验证;
  • 进入账号安全设置,找到「应用专用密码」选项;
  • 创建一个针对Django的专用密码,将这个密码替换settings.py中的EMAIL_HOST_PASSWORD值。

2. 保持发件邮箱一致性

views.py中的from_email必须和settings.py里的EMAIL_HOST_USER完全一致,否则会被Gmail拦截。修改views.py代码:

from_email = "你的Gmail完整地址"  # 和settings中的EMAIL_HOST_USER保持一致

3. 验证SMTP配置(可选端口切换)

当前的587端口+TLS配置是正确的,但如果你的网络屏蔽了587端口,可以尝试切换到465端口+SSL加密:

# settings.py中修改
EMAIL_PORT = 465
EMAIL_USE_SSL = True
EMAIL_USE_TLS = False

4. 查看Django错误日志排查

你设置了fail_silently=False,当发送失败时Django会抛出具体错误(比如SMTP认证失败、连接超时等),查看控制台输出或Django日志,能快速定位问题根源。

5. 检查收件方垃圾邮件箱

很多时候邮件并没有丢失,只是被收件邮箱的反垃圾系统归类到了垃圾邮件/促销邮件文件夹,让收件方检查这些位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:03:20