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

Функция send_mail

Функция send_mail предоставляет простой и удобный способ отправки электронных писем в Django. Она принимает основные параметры письма: тему, текст, отправителя и список получателей. Функция возвращает количество успешно доставленных сообщений, что позволяет отслеживать результат отправки.

Синтаксис

send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None)

Параметры функции

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

  • subject - тема письма (строка)
  • message - текст письма (строка)
  • from_email - email отправителя (строка)
  • recipient_list - список получателей (список строк)
  • fail_silently - подавлять ли исключения (булево значение, по умолчанию False)
  • auth_user - имя пользователя для аутентификации (опционально)
  • auth_password - пароль для аутентификации (опционально)
  • connection - соединение с почтовым сервером (опционально)
  • html_message - HTML-версия письма (опционально)

Пример . 1: Базовая отправка письма

Отправим простое текстовое письмо одному получателю:

from django.core.mail import send_mail res = send_mail( 'Welcome to our site', 'Thank you for registration!', 'noreply@mysite.com', ['user@example.com'], fail_silently=False, ) print(res)

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

"1"

Пример . 2: Отправка письма нескольким получателям

Отправим письмо списку получателей:

from django.core.mail import send_mail recipients = ['user1@example.com', 'user2@example.com', 'user3@example.com'] res = send_mail( 'Newsletter', 'Check out our new features!', 'news@mysite.com', recipients, fail_silently=True, ) print(res)

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

"3"

Пример . 3: Отправка письма с HTML-содержимым

Отправим письмо с альтернативной HTML-версией:

from django.core.mail import send_mail res = send_mail( 'Special offer', 'Visit our site for discounts!', 'offers@mysite.com', ['customer@example.com'], html_message='<h1>Special offer!</h1><p>Get 50% off today!</p>', fail_silently=False, ) print(res)

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

"1"

Пример . 4: Отправка письма с пользовательскими данными

Отправим письмо с именем пользователя в теле:

from django.core.mail import send_mail from django.contrib.auth.models import User user = User.objects.get(username='john_doe') res = send_mail( f'Hello {user.username}', f'Welcome back, {user.first_name}!', 'welcome@mysite.com', [user.email], fail_silently=False, ) print(res)

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

"1"

Пример . 5: Отправка писем с использованием соединения

Отправим несколько писем через одно соединение:

from django.core.mail import send_mail, get_connection connection = get_connection() res1 = send_mail( 'Message 1', 'First message body', 'noreply@mysite.com', ['user1@example.com'], connection=connection, ) res2 = send_mail( 'Message 2', 'Second message body', 'noreply@mysite.com', ['user2@example.com'], connection=connection, ) connection.close() print(res1, res2)

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

"1 1"

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

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