我使用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
我尝试了几种服务器设置,没有任何运气。
答案 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
值相同。