编程语言
首页 > 编程语言> > python-Django密码重置不适用于django-anymail

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