Атрибут subject

Атрибут subject класса EmailMessage предназначен для задания темы письма. Он передается в конструктор класса или может быть установлен непосредственно после создания объекта. Тема письма отображается в почтовом клиенте получателя и является важной частью любого электронного сообщения.

Атрибут принимает строковое значение, которое может содержать как простой текст, так и специальные символы. Django автоматически обрабатывает кодировку темы, чтобы корректно отображать символы разных алфавитов. Максимальная длина темы не ограничена Django, но рекомендуется придерживаться стандартных ограничений почтовых серверов (обычно не более 78 символов в строке).

Синтаксис

pythonfrom django.core.mail import EmailMessage

email = EmailMessage(subject='Тема письма', body='Текст письма', to=['user@example.com'])
# или
email.subject = 'Новая тема письма'

Пример

Давайте создадим письмо с темой "Welcome to our site" и отправим его пользователю:

pythonfrom django.core.mail import EmailMessage

email = EmailMessage(
  subject='Welcome to our site',
  body='Thank you for registering!',
  to=['user@example.com']
)
res = email.send()
print(res)

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

python"1"

Пример

Изменим тему письма после создания объекта EmailMessage:

pythonfrom django.core.mail import EmailMessage

email = EmailMessage(
  subject='Old subject',
  body='This is a test email',
  to=['test@example.com']
)
email.subject = 'Updated subject'
email.send()

Пример

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

pythonfrom django.core.mail import EmailMessage

email = EmailMessage(
  subject='Приветствие нового пользователя',
  body='Добро пожаловать в наш сервис!',
  to=['user@example.com']
)
email.send()

Пример

Создадим письмо с темой, содержащей специальные символы и длинное название:

pythonfrom django.core.mail import EmailMessage

email = EmailMessage(
  subject='Важное уведомление: изменение пароля для пользователя [ID: 12345]',
  body='Your password has been changed successfully.',
  to=['user@example.com'],
  from_email='admin@mysite.com'
)
res = email.send(fail_silently=False)

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

  • атрибут body,
    который содержит тело письма
  • атрибут to,
    который определяет список получателей письма
  • метод send,
    который отправляет письмо получателям
  • функция send_mail,
    которая упрощает отправку простых писем