Django密码重置无法使用django-anymail

时间:2016-07-08 05:45:01

标签: python django mailgun 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)

1 个答案:

答案 0 :(得分:3)

我找到了答案,并没有在其他地方出现。

setter的调用有效,因为它会强制发送电子邮件。

但是,密码恢复有很多间接性,其中一项检查是用户has_usable_password,当你在测试期间使用虚拟用户时,我忘了这样做。

因此,请确保您的用户在尝试恢复密码之前设置了密码