如何使用django-registration发送邮件?

-1 投票
1 回答
1824 浏览
提问于 2025-04-15 17:58

我该如何使用django-registration发送电子邮件?

1 个回答

7

django-registration 会在用户注册时发送一封邮件给他们。这个过程大致是这样的(如果这正是你的问题...)*:

  • 用户填写并提交了注册表单...

  • views.py:187

    new_user = backend.register(request, **form.cleaned_data)
    
  • 接着在比如 backends/default/__init__.py:78

    new_user = RegistrationProfile.objects.create_inactive_user(username, email,
       password, site)
    
  • 然后在 models.py:79

    if send_email:
        registration_profile.send_activation_email(site)
    
  • 最后在 models.py:207

    def send_activation_email(self, site):
        ...
        self.user.email_user(subject, message, settings.DEFAULT_FROM_EMAIL)
    

最后一个方法调用会进入 django.contrib.auth,特别是 django.contrib.auth.models.User.email_user

附注:虽然有点粗糙,但一般来说,在代码库中搜索,比如用 grep 或类似工具,可以帮助你找到这样的内容。

*变更集 073835a4269f

撰写回答