python-Django密码重置不适用于django-anymail
作者:互联网
我正在尝试通过我的网站实施django-anymail,但遇到了麻烦.
使用以下设置:
ANYMAIL = {
"MAILGUN_API_KEY": "key-hahahahahahahahhaha... no",
}
EMAIL_BACKEND = "anymail.backends.mailgun.MailgunBackend"
DEFAULT_FROM_EMAIL = "account-recovery@mg.mycooldomain.com"
这工作正常:
send_mail(
"Test it!",
"A new user [%s] has signed up" % (username),
"Accounts <account-creation@mg.mycooldomain.com>",
["my_email@mycooldomain.com",]
)
邮件发送完毕,并显示在mailgun日志中,一切正常.
但是尝试使用内置的django注册密码重置并没有任何作用.
日志显示没有错误,所有模板都位于正确的位置,它说密码重置有效,但是我的收件箱中没有电子邮件,mailgun日志中没有任何内容,在垃圾邮件框中也没有任何内容.
根本没有电子邮件出现.我该如何进行这项工作?
编辑:
同样可行,但仍然无法恢复:
from django.core.mail.message import EmailMessage
EmailMessage('hello','hello',recipients="my_email@gmail.com").send(False)
解决方法:
我想出了答案,但在其他地方都没有找到答案.
send_mail的调用有效,因为它强制发送电子邮件.
但是,密码恢复具有很多间接性,其中一项检查是用户has_usable_password
,这在您在测试过程中与虚拟用户一起使用时却忘记了.
因此,在尝试恢复密码之前,请确保您的用户已设置密码.
标签:mailgun,python,django,django-anymail 来源: https://codeday.me/bug/20191118/2028179.html