django3.1发送可替换内容类型
在电子邮件中包含多个版本的内容可能很有用; 经典的例子是同时发送消息的文本格式版本和HTML格式版本。 Django的电子邮件库的EmailMultiAlternatives类可实现该功能。 作为EmailMessage的子类,它有一个attach_alternative()
方法,用于在电子邮件中包含邮件正文的其它版本。它的所有其他方法(包括类初始化)直接继承EmailMessage。
可以这样发送文本和HTML的组合:
from django.core.mail import EmailMultiAlternatives
subject, from_email, to = 'hello', 'from@example.com', 'to@example.com'
text_content = 'This is an important message.'
html_content = '<p>This is an <strong>important</strong> message.</p>'
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()
默认情况下,EmailMessage正文的MIME类型为“text/plain”。text/plain在任何邮件客户端都可以实现,这样可以保证任何收件人都能够阅读电子邮件。 但是,如果确信收件人可以处理替代内容类型,则可以使用EmailMessage类的content_subtype
属性更改主要内容类型。 主类型将始终为“text”,但可以更改子类型。 例如:
msg = EmailMessage(subject, html_content, from_email, [to])
msg.content_subtype = "html" # Main content is now text/html
msg.send()
作者:学以致用123
链接:https://www.jianshu.com/p/c02aac458a71
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。