Djoser "Password Changed Confirmation" Email не отправляется

Добрый день,

Я успешно перезаписал 3 шаблона Djoser по умолчанию и могу получать эти письма, но я не могу добиться отправки письма "Password Changed Confirmation".

Согласно djoser/conf.py, djoser/email.py и djoser/templates/email кажется, что я все делаю правильно. Но не очевидно, почему этот не отправляется, так как не возникает никаких ошибок.

В каталоге проекта есть следующие соответствующие файлы и пути:

project
  - core
    - email.py
    - settings.py
  - templates
    - email
      - activation.html                    # works
      - confirmation.html                  # works
      - password_changed_confirmation.html # does not work
      - password_reset.html                # works

settings.py был установлен в соответствии с документами Djoser docs.

DJOSER = {
    'LOGIN_FIELD': 'email',
    'USER_CREATE_PASSWORD_RETYPE': True,
    'SET_PASSWORD_RETYPE': True,
    'SEND_ACTIVATION_EMAIL': True,
    'ACTIVATION_URL': 'activate/{uid}/{token}',
    'SEND_CONFIRMATION_EMAIL': True,
    'PASSWORD_RESET_CONFIRM_URL': 'password/reset/confirm/{uid}/{token}',
    # I set this to True as per the docs:
    'PASSWORD_CHANGED_EMAIL_CONFIRMATION:': True,
    'USERNAME_RESET_SHOW_EMAIL_NOT_FOUND': True,
    'PASSWORD_RESET_SHOW_EMAIL_NOT_FOUND': True,
    'SERIALIZERS': {
        'user_create': 'users.serializers.UserCreateSerializer',
        'user': 'users.serializers.UserCreateSerializer',
    },
    'EMAIL': {
        # These 3 templates send:
        'activation': 'core.email.ActivationEmail',
        'confirmation': 'core.email.ConfirmationEmail',
        'password_reset': 'core.email.PasswordResetEmail',
        # This one does not:
        'password_changed_confirmation': 'core.email.PasswordChangedConfirmationEmail',
    }
}

В email.py я создаю свой пользовательский класс для ссылки на шаблон. Операторы печати даже не срабатывают, так что я не думаю, что это вообще вызывается.

from djoser import email

# Override the default Djoser confirmation email.
class PasswordChangedConfirmationEmail(email.PasswordChangedConfirmationEmail):
    template_name = 'email/password_changed_confirmation.html'

    def send(self, to, *args, **kwargs):
        print(f"Sending password changed mail to {to}")
        try:
            super().send(to, *args, **kwargs)
        except:
            print(f"Couldn't send mail to {to}")
            raise
        print(f"Password changed mail sent successfully to {to}")

<
Sending password reset mail to ['someone@somewhere.com']
Password reset mail sent successfully to ['someone@somewhere.com']
[25/Apr/2022 13:53:56] "POST /api/v1/users/reset_password/ HTTP/1.1" 204 0

Затем я перехожу на URL, который он предоставляет, и отправляю POST-запрос с предоставленным uid и token успешно дохожу до reset_password_confirm конечной точки.

[25/Apr/2022 14:13:33] "POST /api/v1/users/reset_password_confirm/ HTTP/1.1" 204 0

Я могу успешно изменить пароль, но нет ни одного оператора печати из этого класса PasswordChangedConfirmationEmail и не получено никакого письма.

Что я делаю не так?

Любая помощь будет оценена по достоинству, спасибо.

Вернуться на верх