РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
657 of 818 menu

Функция mail_managers

Функция mail_managers из модуля django.core.mail предназначена для отправки письма всем менеджерам, указанным в параметре настроек MANAGERS. Это удобный способ оповещения административной группы о важных событиях, ошибках или изменениях в системе. Функция принимает обязательные параметры темы и тела письма, а также позволяет задать дополнительные настройки, такие как адрес отправителя или соединение с почтовым сервером.

Если список менеджеров пуст, письмо не будет отправлено. Также стоит учитывать, что для корректной работы функции в настройках проекта должны быть указаны параметры почтового сервера (EMAIL_HOST, EMAIL_PORT, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD).

Синтаксис

from django.core.mail import mail_managers mail_managers(subject, message, from_email=None, connection=None, fail_silently=False)

Параметры

Функция mail_managers принимает следующие аргументы:

  • ⁅b⁆subject⁅/b⁆ - строка, тема письма (обязательный параметр).
  • ⁅b⁆message⁅/b⁆ - строка, тело письма (обязательный параметр).
  • ⁅b⁆from_email⁅/b⁆ - строка или None, адрес отправителя. Если не указан, используется значение из настроек DEFAULT_FROM_EMAIL.
  • ⁅b⁆connection⁅/b⁆ - экземпляр EmailConnection для использования определённого соединения. Если не указан, используется соединение по умолчанию.
  • ⁅b⁆fail_silently⁅/b⁆ - булево значение. Если True, ошибки SMTP игнорируются. По умолчанию False.

Возвращает количество успешно отправленных сообщений (целое число).

Пример . Использование

Отправим простое уведомление менеджерам о том, что на сайте была опубликована новая статья:

from django.core.mail import mail_managers subject = "New article published" message = "A new article has been posted on the website. Check it out." sent_count = mail_managers(subject, message) print(sent_count)

Результат выполнения кода:

"1"

В данном случае письмо было отправлено одному менеджеру, поэтому возвращено значение 1.

Пример . С указанием отправителя

Если необходимо отправить письмо с конкретного адреса, его можно указать в параметре from_email:

from django.core.mail import mail_managers subject = "System alert" message = "Server usage exceeded 90%." from_email = "admin@example.com" mail_managers(subject, message, from_email=from_email)

Пример . С обработкой ошибок

Для подавления исключений при проблемах с отправкой можно использовать параметр fail_silently:

from django.core.mail import mail_managers try: mail_managers( "Critical error", "Database connection lost.", fail_silently=False ) except Exception as e: print(f"Email sending failed: {e}")

Результат выполнения кода:

"Email sending failed: [Errno 111] Connection refused"

Здесь ошибка была перехвачена и обработана, так как мы установили fail_silently=False.

Смотрите также

  • функция send_mail,
    которая отправляет одно письмо произвольным получателям
  • функция send_mass_mail,
    которая отправляет несколько писем за одно соединение
  • функция mail_admins,
    которая отправляет письмо администраторам сайта
  • класс EmailMessage,
    который предоставляет гибкий API для создания и отправки писем
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить