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

Posted

技术标签:

【中文标题】django html_message 和发送邮件中的消息有啥区别【英文标题】:what is the difference between django html_message and message in send maildjango html_message 和发送邮件中的消息有什么区别 【发布时间】:2015-09-29 16:42:25 【问题描述】:

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

注意:- 区别更重要。

这就是我所做的

msg_html = (' HELLLOOOOO') msg_plain = 'Normalallalaa

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

我的邮件仅包含粗体的 Hello

我的消息去哪儿了。

【问题讨论】:

【参考方案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 作为参数。

【讨论】:

知道了.... thnx 很多...如果我通过终端收到邮件,我会正确获取文本邮件,因为它没有要显示的 html...【参考方案2】:

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

【讨论】:

意味着 d 优先级是 html one...如果我通过终端接收邮件,我会正确获取文本邮件,因为它没有要显示的 html...

以上是关于django html_message 和发送邮件中的消息有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

django 发送和接收电子邮件?

Django 发送的电子邮件中的部分和断行

Django 发送邮件

Mailchimp,通过 Django 发送邮件(),打开费率跟踪

从登录用户 Django 发送电子邮件

如何使用 django-rest-auth 和 Mailgun 从 Django 发送密码重置电子邮件