Метод send
Метод send применяется к экземпляру класса EmailMessage и отправляет
электронное письмо с использованием настроенного почтового бекенда.
Метод возвращает количество успешно доставленных сообщений
(обычно 1 при успешной отправке). При отправке можно передать
дополнительные параметры, такие как почтовое соединение или
список получателей, которые переопределят установленные в
объекте письма.
Синтаксис
EmailMessage.send(fail_silently=False, connection=None)
Параметры
Метод send принимает два необязательных параметра:
⁅b⁆fail_silently⁅/b⁆ - логический флаг, определяющий, будут ли
подавляться исключения при отправке. По умолчанию равен False,
то есть исключения будут выбрасываться.
⁅b⁆connection⁅/b⁆ - экземпляр почтового соединения, который будет использоваться для отправки. Если не указан, используется стандартное соединение по умолчанию.
Пример
Давайте создадим простое письмо и отправим его одному получателю:
from django.core.mail import EmailMessage
email = EmailMessage(
subject='Hello from Django',
body='This is a test email sent from Django.',
from_email='sender@example.com',
to=['recipient@example.com']
)
res = email.send()
print(res)
Результат выполнения кода:
"1"
Пример
Отправим письмо с подавлением исключений при возникновении ошибки:
from django.core.mail import EmailMessage
email = EmailMessage(
subject='Test with fail_silently',
body='This email will not raise an exception on failure.',
from_email='sender@example.com',
to=['invalid-recipient@example.com']
)
res = email.send(fail_silently=True)
print(res)
Результат выполнения кода:
"0"
Пример
Отправим письмо с использованием пользовательского почтового соединения:
from django.core.mail import EmailMessage, get_connection
connection = get_connection(
host='smtp.custom.com',
port=587,
username='user@custom.com',
password='secure_password',
use_tls=True
)
email = EmailMessage(
subject='Custom SMTP Test',
body='This email uses a custom SMTP connection.',
from_email='user@custom.com',
to=['test@example.com']
)
res = email.send(connection=connection)
print(res)
Результат выполнения кода:
"1"
Пример
Отправим письмо с несколькими получателями и вложениями:
from django.core.mail import EmailMessage
email = EmailMessage(
subject='Important Document',
body='Please find attached the document.',
from_email='sender@example.com',
to=['recipient1@example.com', 'recipient2@example.com'],
bcc=['bcc@example.com']
)
email.attach('document.pdf', b'PDF content here', 'application/pdf')
email.attach_file('image.png')
res = email.send()
print(res)
Результат выполнения кода:
"1"
Смотрите также
-
функция
send_mail,
которая отправляет простое письмо без создания объекта класса -
функция
send_mass_mail,
которая отправляет несколько писем за одно соединение -
функция
mail_admins,
которая отправляет письмо администраторам сайта -
функция
mail_managers,
которая отправляет письмо менеджерам сайта