使用django模板生成电子邮件的有用工具
django-template-email的Python项目详细描述
django template email提供了一组工具,允许您轻松构建 使用模板的纯文本或HTML电子邮件。
用法
安装django template电子邮件后,将template_email添加到 INSTALLED_APPS在settings.py中。
模板
电子邮件模板类似于任何其他django模板。使用模板作为 但是,您必须加载“email”模板标记库并使用其标记 定义电子邮件的不同部分。电子邮件模板标记库 提供三个不同的标记可供使用:subject,body,以及 bodyhtml,每个都有各自的endsubject、endbody和 endbodyhtml。
例如
{% load email %} {% subject %}Thank you for signing up!{% endsubject %} {% body %} Hello, {{ first_name }}. Thank you for signing up. To find out more information, please visit http://www.example.com/foo/. Sincerely, The Team {% endbody %} {% bodyhtml %} Hello, <em>{{ first_name }}</em>. Thank you for signing up. To find out more information, click <a href="http://www.example.com/foo/">here</a>. {% endbodyhtml %}
每个标签都是完全可选的。您可以将电子邮件的任何部分设置为 通常情况下会与djanog的emailMessage类一起使用。
发送电子邮件
templateemail类是 diango.core.mail.emailmultialternatives,它本身是 django.core.mail.emailMessage。
要将电子邮件模板作为电子邮件发送,只需实例化模板电子邮件 在传递模板和(可选)上下文dict时初始化:
from template_email import TemplateEmail context = {'first_name': user.first_name} email = TemplateEmail(template='email/confirmation_message.html', context) email.send()
模板电子邮件类
当然,您也可以扩展templateemail类以满足您的需要。 templateemail类是用可选的关键字参数初始化的 在template和context中。但是,模板和上下文变量可以是 也作为属性重写。templateemail类具有以下内容 属性:
- template:用于呈现电子邮件的模板
- context:提供给模板的上下文
- subject:电子邮件的主题
- body:电子邮件的计划文本正文
- html:作为替代类型附加的html
subject、body和html属性用作默认值, 将被模板中给定的内容覆盖。
当您调用send()方法时,templateemail类首先呈现 将模板放入电子邮件的不同部分。模板标记只是 将其内容转储到render()方法的临时上下文变量中 使用。然后,render方法将每个标记的内容分别呈现为 类的subject、body和bodyhtml属性。
为了方便起见,send()方法将自动转换用户模型 电子邮件收件人的实例,将其格式化为“名”“姓” <;电子邮件>;“。