отправка безопасного HTML-кода с помощью django emailmessage

#python #django #django-templates #django-email

#python #django #django-шаблоны #django-электронная почта

Вопрос:

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

 from celery import task
from django.template.loader import render_to_string, get_template
from django.core.mail import EmailMessage
from orders.models import Order


@task
def payment_completed(order_id):
    order = Order.objects.get(id=order_id)

    subject = f'Testing html sending'
    message = render_to_string('orders/order/pdf.html', {'order':order})
    email = EmailMessage(
        subject,
        message,
        'youremai@gmail.com',
        [order.email, 'youremai@gmail.com']
    )
    email.content_subtype = 'html'
    email.send()

 

Я пробовал render_to_string и get_template
тот же результат

это то, что я получаю по почте.(показывает HTML-теги)

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

1. может ли подразделение показывать то, что вы видите в своем электронном письме? потому что похоже, что ваша функция отправки электронной почты выглядит нормально.

2. хорошо, я добавлю это в сообщение

3. не могли бы вы также показать свой код get_template, который вы пробовали?

4. это было все то же самое

Ответ №1:

Вы можете использовать EmailMultiAlternatives вместо EmailMessage , и код может выглядеть следующим образом

 email = EmailMultiAlternatives(
    subject,
    message_plain_text,
    'youremai@gmail.com',
    [order.email, 'youremai@gmail.com']
)
email.attach_alternative(message, 'text/html')
email.send()
 

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

1. могу ли я отобразить строку с помощью emailmultialternative?