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

Django密码重置出现SMTPSenderRefused认证错误求助

Django密码重置SMTP认证失败(SMTPSenderRefused)解决方法

问题核心分析

错误信息里的SMTPSenderRefused和发件人webmaster@localhost是关键:Google SMTP要求发件人必须与登录邮箱一致,同时需要正确的认证凭据。


解决方案步骤

1. 统一发件人配置

在settings.py中添加以下配置,确保发件人地址与SMTP登录邮箱一致:

DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER

Django默认使用webmaster@localhost作为发件人,Google SMTP会拒绝这种不一致的发件请求。

2. 验证环境变量有效性

确认环境变量USER_EMAIL和USER_PASS已正确配置并能被Django读取。可临时在settings.py中添加打印语句测试:

import os
print("EMAIL_USER:", os.environ.get('USER_EMAIL'))
print("EMAIL_PASS:", os.environ.get('USER_PASS'))

如果输出为空,需重新配置环境变量(如系统环境变量添加或使用python-dotenv加载.env文件)。

3. 配置Google SMTP认证凭据

Google已禁用普通密码直接登录SMTP,需采用以下两种方式之一:

  • 应用专用密码(推荐):为Google账户开启两步验证后,在账户安全设置中生成「应用专用密码」,将此密码作为EMAIL_HOST_PASSWORD的值。
  • 测试环境临时方案:若未开启两步验证,可在Google账户安全设置中开启「不太安全的应用访问」(此选项部分账户已移除,仅建议测试用)。

4. 测试邮件发送配置

使用Django Shell验证SMTP配置是否正常:

python manage.py shell

在Shell中执行:

from django.core.mail import send_mail
send_mail(
    '测试邮件',
    '这是一封测试邮件',
    '你的gmail邮箱地址',
    ['收件人邮箱地址'],
    fail_silently=False
)

若邮件发送成功,再测试密码重置功能即可。


内容的提问来源于stack exchange,提问作者Sahil Tariq

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:20:28