Атрибут subject
Атрибут subject класса EmailMessage предназначен для задания темы письма. Он передается в конструктор класса или может быть установлен непосредственно после создания объекта. Тема письма отображается в почтовом клиенте получателя и является важной частью любого электронного сообщения.
Атрибут принимает строковое значение, которое может содержать как простой текст, так и специальные символы. Django автоматически обрабатывает кодировку темы, чтобы корректно отображать символы разных алфавитов. Максимальная длина темы не ограничена Django, но рекомендуется придерживаться стандартных ограничений почтовых серверов (обычно не более 78 символов в строке).
Синтаксис
from django.core.mail import EmailMessage
email = EmailMessage(subject='Тема письма', body='Текст письма', to=['user@example.com'])
# или
email.subject = 'Новая тема письма'
Пример
Давайте создадим письмо с темой "Welcome to our site" и отправим его пользователю:
from 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)
Результат выполнения кода:
"1"
Пример
Изменим тему письма после создания объекта EmailMessage:
from 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()
Пример
Используем тему с кириллическими символами для отправки письма на русском языке:
from django.core.mail import EmailMessage
email = EmailMessage(
subject='Приветствие нового пользователя',
body='Добро пожаловать в наш сервис!',
to=['user@example.com']
)
email.send()
Пример
Создадим письмо с темой, содержащей специальные символы и длинное название:
from 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)