我正在使用模板发送电子邮件,但是模板没有正确渲染。它显示了HTML标签,并且不会呈现特殊的字符。
它确实呈现上下文,例如,如果我为其提供"用户名":some_name,那么当我做{{{username}}
时,它将正确显示用户名。my_template.html:
<p>hello ø</p>
在视图中:
from django.core.mail import EmailMultiAlternatives
from django.template.loader import get_template
from django.template import Context
t = get_template('my_template.html')
msg = EmailMultiAlternatives("hi", t.render(Context({})), from_email, [user.email])
msg.send()
带有显示的P标签的接收电子邮件显示。同样,该实体完全显示为模板中的书面。只需使用.txt文件,我会没事的,只是我需要呈现特殊的字符。如果我直接在TXT文件中写下它们,则在尝试发送时会出现错误。
我还尝试使用django的send_mail()。还将HTML标签添加到模板中。相同的结果。
多部分/替代电子邮件有两个部分:
- 电子邮件的纯文本版本
- 电子邮件的HTML版本
所以您只需要做#2并添加HTML零件!
在此处以下示例...在msg.send()`
之前msg.attach_alternative(t.render(Context({})), "text/html")
message.content_subtype = 'html'