Django — Html-теги в шаблоне электронной почты

#django

Вопрос:

Я использую сигналы Django для отправки электронных писем при добавлении новой записи:

 @receiver(post_save, sender=MeetingMember)
def send_invited_emails(sender, instance,  **kwargs):
    host = instance.meeting.host
    subject = "Mizban invition"
    # htmly = get_template('sendingemail.html')
    domain = Site.objects.get_current().domain
    context={'host':host,'meeting': instance,'domain':domain}
    html_content = render_to_string('sendingemail.html',context)
    send_mail(subject, html_content, settings.EMAIL_HOST_USER,[instance.email])
 

Этот код работает, но он также отправляет html-теги по электронной почте. Как я могу решить эту проблему?

Комментарии:

1. Также покажу вам html-код. Но убедитесь, что ваш окруженный html кодом {% autoescape off %} и {% endautoescape %}

Ответ №1:

Второй параметр message -это сообщение, которое вы хотите отобразить в виде необработанного текста. Вы можете передать содержимое HTML-сообщения через html_message=… параметр send_mail(…) функции [Django-doc]:

 # …
html_content = render_to_string('sendingemail.html',context)
send_mail(
    subject,
    html_content,
    settings.EMAIL_HOST_USER,[instance.email],
    html_message=html_content
) 

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