3

我正在尝试在我的网站上实现 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)
4

1 回答 1

4

我想出了答案,但它没有出现在其他地方。

调用send_mail工作,因为它强制发送电子邮件。

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

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

于 2016-07-09T00:44:05.590 回答