Python/Django:电子邮件模板未呈现。显示 html 标记,但不转换实体



我正在使用模板发送电子邮件,但是模板没有正确渲染。它显示了HTML标签,并且不会呈现特殊的字符。

它确实呈现上下文,例如,如果我为其提供"用户名":some_name,那么当我做{{{username}}

时,它将正确显示用户名。

my_template.html:

<p>hello &oslash;</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标签添加到模板中。相同的结果。

多部分/替代电子邮件有两个部分:

  1. 电子邮件的纯文本版本
  2. 电子邮件的HTML版本

所以您只需要做#2并添加HTML零件!

在此处以下示例...在msg.send()`

之前
msg.attach_alternative(t.render(Context({})), "text/html")
message.content_subtype = 'html'

相关内容

  • 没有找到相关文章

最新更新