django-ses не отправляет электронное письмо в формате html

Я использую бэкэнд django-ses для отправки django-newsletter. Но полученные электронные письма не содержат html-разметки.

Если я отправлю с django.core.mail.backends.console.EmailBackend, будет письмо, которое я хочу, и с обычным заголовком:

MIME-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: 8bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">

person Raido    schedule 30.08.2014    source источник
comment
Вы нашли решение для этого?   -  person Alouani Younes    schedule 05.02.2019


Ответы (1)


Установите content_subtype объекта сообщения электронной почты на text/html

msg = EmailMessage(subject, html_content, from_email, [to])
msg.content_subtype = "html"  # Main content is now text/html
msg.send()

Или вы можете использовать EmailMultiAlternatives

from django.core.mail import EmailMultiAlternatives

subject, from_email, to = 'hello', '[email protected]', '[email protected]'
text_content = 'This is an important message.'
html_content = '<p>This is an <strong>important</strong> message.</p>'
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()

Таким образом, по умолчанию будет отображаться HTML-код электронной почты, но у вас все еще будет текстовая версия, к которой можно вернуться.

person elssar    schedule 30.08.2014