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
相关产品推荐
相关产品推荐

