django-allauth 注册后未发送确认电子邮件

django-allauth confirmation email not sent after signing up

我一直按照说明为我的网站设置 django-allauth 软件包,并且在注册后发送确认电子邮件之前一切正常。一切似乎工作正常,因为我注册了新帐户的信息在数据库中(user 表和 account_emailaddress 表),但未发送电子邮件(表 account_emailconfirmation 中没有内容)。 EMAIL_BACKEND 设置为 django.core.mail.backends.console.EmailBackend 并且我没有收到任何日志错误。

我一直在调试,我注意到工作流程如下:

  • SignupView 中的 form_valid 方法调用 complete_signup 方法
  • complete_signup 调用 perform_login

然后,perform_login 检查的第一个条件是 if not user.is_active,我认为在注册时总是会满足这一条件,因为默认情况下新用户是不活动的。由于这一点得到满足,每个注册用户都被重定向到帐户非活动页面 (return HttpResponseRedirect(reverse('account_inactive'))).

我看过评论:

这是否意味着我应该实施一些措施来像下一个一样发送我的确认电子邮件?

我猜这个包可以正常工作,但我不明白为什么会这样,非常感谢你的帮助。

提前致谢。


它最终成为一件愚蠢的事情(但我失去了一些时间......)。因为我使用的是自定义用户模型,所以我的模型上有 is_active 字段,默认值为 False。这阻止了 allauth 发送电子邮件。我将默认值更改为 True,现在可以正常工作了。

我希望这对其他人有帮助。