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

Django密码重置遇SMTPRecipientsRefused,但smtplib可正常发邮件

Django密码重置触发SMTPRecipientsRefused错误,但smtplib可正常发件

使用Django账户系统配置模板时,执行密码重置操作出现SMTPRecipientsRefused错误,但用相同SMTP信息通过smtplib发送邮件却能正常运行。

Django邮件配置

# EMAIL
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "mail.X.com"
EMAIL_PORT = 587
EMAIL_HOST_USER = "X@mydomain"
EMAIL_PASSWORD = "password"

报错信息

Exception Type: SMTPRecipientsRefused at /accounts/password_reset/
Exception Value: {'X@gmail.com': (450, b'4.7.1 We do not relay gmail.com')}

smtplib测试成功代码

>>> import smtplib
>>> from email.message import EmailMessage
>>> mail_server = "mail.X.com"
>>> mail_username = "X@mydomain"
>>> mail_password = "password"
>>> mail_port = 587
>>> msg = EmailMessage()
>>> msg["Subject"] = "subject test"
>>> msg["From"] = mail_username
>>> msg["To"] = "X@gmail.com"
>>> server = smtplib.SMTP(mail_server, mail_port)
>>> server.login(mail_username, mail_password)
(235, b'2.7.0 Ok')
>>> server.send_message(msg)
{}
>>> server.quit()
(221, b'2.0.0 Bye')

已尝试的解决方案及新问题

  • 在settings.py中添加DEFAULT_FROM_EMAIL = "X@mydomain",无效果
  • 添加EMAIL_USE_TLS=True后,出现证书验证错误:
SSLCertVerificationError at /accounts/password_reset/
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'mail.X.com'. (_ssl.c:1131)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:21:07