Как сделать текст "жирным" в теле письма в python?

Как сделать текст жирным в теле письма в python? Я использую следующий код для отправки почты :

from django.core.mail import send_mail

send_mail(subject, message, sender, [email], fail_silently=False)

Я хочу сделать некоторый важный текст жирным. Используя следующий код, я получил всю строку в виде сообщения.

message = " Hi Customer,<br> Your OTP is <b>****</b>"

Но он работает, когда я пробую \n как <br>. Что я могу сделать, чтобы сделать текст жирным?

Согласно Django DOCS, html должен быть добавлен как отдельный файл, чтобы его можно было читать с html или без него (в зависимости от того, что использует получатель, не все хотят html в письмах). Вам нужно EmailMultiAlternatives с помощью метода attach_alternative:

from django.core.mail import EmailMultiAlternatives

subject, from_email, to = 'hello', 'from@example.com', 'to@example.com'
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 email в django

Чтобы сделать текст жирным в теле письма, нужно отправить html-тело.

Попробуйте это:

from django.template import loader

html_message = loader.render_to_string(
            'path/to/your/htm_file.html',
            {
                'user_name': user.name,
                'subject':  'Thank you from' + dynymic_data,
                //...  
            }
        )
send_mail(subject,message,from_email,to_list,fail_silently=True,html_message=html_message)

А html-файл должен выглядеть примерно так

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <h1>{{ user_name }}</h1>
        <h2>{{ subject }}</h2>
    </body>
</html>
Вернуться на верх