django html_message 和发送邮件中的消息有什么区别
what is the difference between django html_message and message in send mail
当我尝试使用 django 发送邮件发送邮件时,只会收到 html 消息,而不是正常消息,我想知道两者之间的区别。
有什么最好的方法可以通过模板或 html 文件发送邮件,因为我想在我的应用程序中使用一个邮件系统。
注意:- 区别更为重要。
这就是我所做的
msg_html = (' HELLLOOOOO')
msg_plain = 'Normalallalaa
send_mail("titleeeee", msg_plain,"sender@test",["reciever@tese",html_message=msg_html)
我的邮件只包含粗体的你好
我的消息去哪儿了。
消息是纯文本,而 html_message 是使用 HTML 格式化的消息。如果两者都设置,则可能是您的电子邮件客户端显示的是 HTML 版本。
问题是某些(旧的或专门配置的)电子邮件客户端不会显示 HTML 消息,因此您需要确保所有用户都能正确阅读您的电子邮件。如果您决定只发送文本,那么能够接收 HTML 消息的用户将不会从中受益。
这是我遵循的策略:
我使用 django.template.loader.render_to_string
来呈现具有给定上下文的模板。此函数 returns 的值是一个字符串,在 HTML.
中有一条消息
html_text = render_to_string(template, context)
然后我根据 HTML 消息创建一个纯文本消息(例如,通过使用名为 html2text
的包):
plain_text = html2text(html_text)
最后我发送带有 django.core.mail.send_mail
的电子邮件,将 html_text
和 plain_text
作为参数传递。
当我尝试使用 django 发送邮件发送邮件时,只会收到 html 消息,而不是正常消息,我想知道两者之间的区别。 有什么最好的方法可以通过模板或 html 文件发送邮件,因为我想在我的应用程序中使用一个邮件系统。
注意:- 区别更为重要。
这就是我所做的
msg_html = (' HELLLOOOOO') msg_plain = 'Normalallalaa
send_mail("titleeeee", msg_plain,"sender@test",["reciever@tese",html_message=msg_html)
我的邮件只包含粗体的你好
我的消息去哪儿了。
消息是纯文本,而 html_message 是使用 HTML 格式化的消息。如果两者都设置,则可能是您的电子邮件客户端显示的是 HTML 版本。
问题是某些(旧的或专门配置的)电子邮件客户端不会显示 HTML 消息,因此您需要确保所有用户都能正确阅读您的电子邮件。如果您决定只发送文本,那么能够接收 HTML 消息的用户将不会从中受益。
这是我遵循的策略:
我使用 django.template.loader.render_to_string
来呈现具有给定上下文的模板。此函数 returns 的值是一个字符串,在 HTML.
html_text = render_to_string(template, context)
然后我根据 HTML 消息创建一个纯文本消息(例如,通过使用名为 html2text
的包):
plain_text = html2text(html_text)
最后我发送带有 django.core.mail.send_mail
的电子邮件,将 html_text
和 plain_text
作为参数传递。