我正在使用模板发送电子邮件,但模板未正确呈现 . 它显示了html标记,并且不呈现特殊字符 .
它确实渲染了上下文,例如,如果我提供了“username”:some_name然后它会在我{}时正确显示用户名
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标记 . 结果相同 .
1 回答
多部分/替代电子邮件包含两部分:
电子邮件的纯文本版本
电子邮件的html版本
所以在这里你只需要做#2并添加html部分!
按照这里的例子... https://docs.djangoproject.com/en/dev/topics/email/#sending-alternative-content-types ...你可能只需要在msg.send()之前添加这样的一行 .