如何在 python 的电子邮件正文中制作文本 "bold"?

How do I make text "bold" in email body in 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 在电子邮件中)。您需要 EmailMultiAlternativesattach_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 正文。

试试这个:

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>