Как настроить отправку писем на почту при изменинии пароля?

Для настройки отправки писем на почту при изменении пароля в Django, вам понадобится использовать Django's Signals и Django's Email sending functionality.

Первым шагом является создание сигнала для регистрации события изменения пароля. Для этого откройте файл, содержащий вашу модель пользователя (обычно models.py) и импортируйте следующие необходимые модули:

from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver

Затем, создайте функцию, которая будет вызываться каждый раз при сохранении экземпляра модели пользователя после изменения его пароля:

@receiver(post_save, sender=User)
def send_password_change_email(sender, instance, **kwargs):
    if kwargs.get('created', False):
        return
    
    # Отправьте письмо на почту пользователя
    # Используйте функцию send_mail из модуля django.core.mail

Внутри функции send_password_change_email вы можете использовать функцию send_mail из модуля django.core.mail для отправки письма на почту пользователя. Вот пример кода, который может быть использован:

from django.core.mail import send_mail

@receiver(post_save, sender=User)
def send_password_change_email(sender, instance, **kwargs):
    if kwargs.get('created', False):
        return
    
    # Получите данные пользователя
    user_email = instance.email
    user_name = instance.username
    
    # Подготовьте текст и тему письма
    subject = 'Password Change Notification'
    message = f'Dear {user_name}, your password has been changed successfully.'
    from_email = '[email protected]'
    recipient_list = [user_email]
    
    # Отправьте письмо
    send_mail(subject, message, from_email, recipient_list)

В коде выше, мы получаем адрес электронной почты и имя пользователя из экземпляра модели User, и затем используем их для создания сообщения и его отправки с помощью функции send_mail.

Обратите внимание, что перед использованием функции send_mail вам также потребуется настроить указанный в переменной from_email адрес электронной почты отправителя в файле настроек Django (settings.py), чтобы ваши письма отправлялись успешно.

Наконец, не забудьте добавить импорт вашей функции send_password_change_email в вашем приложении в файле apps.py:

from .models import send_password_change_email

Теперь, при каждом сохранении экземпляра модели User, после изменения пароля, функция send_password_change_email будет вызываться, и пользователь получит уведомление о изменении пароля по электронной почте.