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

Django项目中密码重置邮件配置失效问题排查求助

解决Django密码重置邮件无法发送&发件人异常问题

嘿,我帮你梳理下当前配置里的几个关键问题,这就是邮件没实际发送、发件人显示webmaster@localhost的原因:

1. 邮件后端用了控制台模式,不会真发邮件

你设置的EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'是调试专用的——它只会把邮件内容打印到终端,根本不会连接SMTP服务器发送给用户。要实际发邮件,得改成SMTP后端:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

2. Gmail SMTP服务器地址写错了

Gmail的SMTP服务器是smtp.gmail.com,不是你写的smtp.gmail.net,这个错误会导致连不上正确的邮件服务器:

EMAIL_HOST = 'smtp.gmail.com'

3. 没指定默认发件人,所以用了系统默认值

终端显示发件人是webmaster@localhost,是因为Django默认用这个地址当发件人。你需要添加DEFAULT_FROM_EMAIL配置,让邮件用你的Gmail账号发出去:

DEFAULT_FROM_EMAIL = EMAIL_HOST_USER  # 直接复用你的Gmail账号作为发件人

4. 额外的Gmail注意事项(避免踩坑)

  • 确认你的Google账号已经开启两步验证,否则App Password无法使用(你已经提到用了App Password,这点很对)
  • 如果还是连不上,可以检查下服务器/本地网络是否允许587端口的出站连接
  • 极端情况如果还是失败,可以暂时开启Gmail的“不太安全的应用访问”(但更推荐坚持用App Password,更安全)

修改后的完整邮件配置示例:

# 邮件配置修正版
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'mygmail@gmail.com'
EMAIL_HOST_PASSWORD = '你的Gmail App Password'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

改完这些配置后,重启Django服务再测试密码重置功能:

  • 终端不会再打印邮件内容(因为用了SMTP后端)
  • 去测试邮箱里查收重置邮件
  • 如果还是有问题,看终端的错误输出,通常会提示SMTP连接失败的具体原因(比如密码错了、端口不通等)

内容的提问来源于stack exchange,提问作者Abu Mus'ab

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:22:50