Django PasswordResetView не отправляет письмо (Django 5, Gmail SMTP)

Проблема: Я столкнулся с проблемой, когда PasswordResetView в моем проекте Django не отправляет электронные письма. Я протестировал свои почтовые конфигурации с помощью оболочки Django и пользовательского почтового маршрута, и письма отправляются успешно. Однако, PasswordResetView по умолчанию и страница сброса пароля в административной панели Django не отправляют электронные письма.

Окружение:

  • Django 5
  • Gmail SMTP
  • Использование пользовательской модели пользователя

Настройки электронной почты (settings.py):

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "smtp.gmail.com"
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.environ.get("EMAIL_HOST_USER")
EMAIL_HOST_PASSWORD = os.environ.get("EMAIL_HOST_PASSWORD")

DEFAULT_FROM_EMAIL = os.environ.get("EMAIL_HOST_USER")
SERVER_EMAIL = os.environ.get("EMAIL_HOST_USER")

# Custom User Model
AUTH_USER_MODEL = "accounts.CustomUser"


Views and URLs:
I have tried using a custom view (custom_password_reset) and the default PasswordResetView, but both do not send emails.

    # views.py
    def custom_password_reset(request):
        return auth_views.PasswordResetView.as_view(
            template_name="accounts/password-reset.html",
            success_url=reverse_lazy("accounts:password-reset-done"),
            extra_email_context={"request": request},
        )(request)
    
    # urls.py
    path("password-reset/", views.custom_password_reset, name="password-reset"),


Additional Information:

    I have tested sending emails from the Django shell, and it works.
    I have allowed less-secure app access for my Gmail account.

I appreciate any insights or suggestions on resolving this issue. Thank you!
Вернуться на верх