Django:SMTP收件人拒绝使用EmailBackend,但不支持smtplib

时间:2018-11-16 06:16:51

标签: django

我使用settings.py中的以下设置来设置Django的密码恢复过程:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.someserver.com' # mail service smtp
EMAIL_HOST_USER = 'someone@fakeserver.com' # email id
EMAIL_HOST_PASSWORD = 'my password' #password
EMAIL_PORT = 465
EMAIL_USE_SSL = True

在应用程序的其他地方,我使用smtplib使用相同的服务器设置毫无问题地发送电子邮件。

但是,当我测试密码恢复过程时,它失败并显示以下错误:SMTPRecipientsRefused 451 Temporary local problem - please try later

我尝试了几种服务器设置,没有任何运气。

1 个答案:

答案 0 :(得分:0)

由于服务器拒绝电子邮件,出现SMTPRecipientsRefused(451)错误。之所以难以解决,是因为错误并不能真正准确地告诉您出了什么问题。

我最终在StackOverflow上找到了this answer,发现我缺少一个设置,即DEFAULT_FROM_EMAIL。我的最终工作设置如下:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.fakeserver.com' # mail service smtp
EMAIL_HOST_USER = 'someone@fakeserver.com' # email id
EMAIL_HOST_PASSWORD = 'my password' #password
EMAIL_PORT = 465
EMAIL_USE_SSL = True
DEFAULT_FROM_EMAIL = 'someone@fakeserver.com'

请注意,DEFAULT_FROM_EMAIL值必须与EMAIL_HOST_USER值相同。