django html_message和发送邮件中的消息有什么区别

时间:2015-07-10 19:48:53

标签: django python-2.7 django-templates django-views

当我试图用django发送邮件时,只发送html消息,而不是正常的消息,我想知道两者之间的区别。   有没有最好的方式通过模板或html文件发送邮件,因为我想在我的应用程序中使用一个邮件系统。

注意: - 差异更为重要。

这就是我发布的

msg_html =(' HELLLOOOOO ') msg_plain =' Normalallalaa

send_mail(" titleeeee",msg_plain," sender @ test",[" reciever @ tese",],html_message = msg_html)

我的邮件只包含大胆的Hello

我的消息在哪里。

2 个答案:

答案 0 :(得分:1)

问题是某些(旧的或特定配置的)电子邮件客户端不会显示HTML消息,因此您需要确保所有用户都能正确阅读您的电子邮件。如果您决定只发送文本,那么能够获取HTML消息的用户将无法从中受益。

这是我遵循的策略:

我使用django.template.loader.render_to_string呈现具有给定上下文的模板。此函数返回的值是一个带有HTML格式消息的字符串。

html_text = render_to_string(template, context)

然后我根据HTML消息创建纯文本消息(例如,使用名为html2text的包):

plain_text = html2text(html_text)

最后,我使用django.core.mail.send_mail发送电子邮件,并将html_textplain_text作为参数传递。

答案 1 :(得分:0)

消息是纯文本,而html_message是使用HTML格式化的消息。如果同时设置,则可能是您的电子邮件客户端正在显示HTML版本。