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

Функция send_mass_mail

Функция send_mass_mail позволяет отправить несколько писем за один вызов, используя одно соединение с почтовым сервером. Это значительно эффективнее, чем вызывать send_mail в цикле, так как соединение открывается один раз для всех писем. Функция принимает кортеж или список кортежей, каждый из которых содержит данные для одного письма: тему, текст, отправителя и список получателей.

Синтаксис

send_mass_mail(datatuple, fail_silently=False, auth_user=None, auth_password=None, connection=None)

Параметр datatuple является обязательным и представляет собой кортеж кортежей, где каждый внутренний кортеж содержит четыре элемента: subject, message, from_email и recipient_list. Параметр fail_silently определяет, будут ли подавляться исключения при отправке. Параметры auth_user и auth_password используются для аутентификации на SMTP-сервере, а connection позволяет передать собственное соединение.

Пример . Отправка нескольких писем

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

from django.core.mail import send_mass_mail message1 = ("Subject 1", "Message text 1", "from@example.com", ["user1@example.com"]) message2 = ("Subject 2", "Message text 2", "from@example.com", ["user2@example.com"]) res = send_mass_mail((message1, message2), fail_silently=False) print(res)

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

"Successfully sent 2 messages"

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

Отправим письма от разных отправителей разным получателям:

from django.core.mail import send_mass_mail message1 = ("Welcome", "Welcome to our service", "admin1@example.com", ["user1@example.com"]) message2 = ("Newsletter", "Weekly newsletter", "admin2@example.com", ["user2@example.com", "user3@example.com"]) res = send_mass_mail((message1, message2), fail_silently=False) print(res)

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

"Successfully sent 2 messages"

Пример . С использованием соединения

Передадим собственное соединение для управления подключением вручную, например, для использования одного соединения при отправке большого количества писем:

from django.core.mail import send_mass_mail, get_connection connection = get_connection() connection.open() message1 = ("Subject A", "Message A", "from@example.com", ["user1@example.com"]) message2 = ("Subject B", "Message B", "from@example.com", ["user2@example.com"]) message3 = ("Subject C", "Message C", "from@example.com", ["user3@example.com"]) res = send_mass_mail((message1, message2, message3), connection=connection) print(res) connection.close()

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

"Successfully sent 3 messages"

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

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