当我试图用django发送邮件时,只发送html消息,而不是正常的消息,我想知道两者之间的区别。 有没有最好的方式通过模板或html文件发送邮件,因为我想在我的应用程序中使用一个邮件系统。
注意: - 差异更为重要。
这就是我发布的
msg_html =(' HELLLOOOOO ') msg_plain =' Normalallalaa
send_mail(" titleeeee",msg_plain," sender @ test",[" reciever @ tese",],html_message = msg_html)
我的邮件只包含大胆的Hello
我的消息在哪里。
答案 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_text
和plain_text
作为参数传递。
答案 1 :(得分:0)
消息是纯文本,而html_message是使用HTML格式化的消息。如果同时设置,则可能是您的电子邮件客户端正在显示HTML版本。