使用django模板生成电子邮件的有用工具

django-template-email的Python项目详细描述


django template email提供了一组工具,允许您轻松构建 使用模板的纯文本或HTML电子邮件。

用法

安装django template电子邮件后,将template_email添加到 INSTALLED_APPSsettings.py中。

模板

电子邮件模板类似于任何其他django模板。使用模板作为 但是,您必须加载“email”模板标记库并使用其标记 定义电子邮件的不同部分。电子邮件模板标记库 提供三个不同的标记可供使用:subjectbody,以及 bodyhtml,每个都有各自的endsubjectendbodyendbodyhtml

例如

{% 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类是用可选的关键字参数初始化的 在templatecontext中。但是,模板和上下文变量可以是 也作为属性重写。templateemail类具有以下内容 属性:

  • template:用于呈现电子邮件的模板
  • context:提供给模板的上下文
  • subject:电子邮件的主题
  • body:电子邮件的计划文本正文
  • html:作为替代类型附加的html

subjectbodyhtml属性用作默认值, 将被模板中给定的内容覆盖。

当您调用send()方法时,templateemail类首先呈现 将模板放入电子邮件的不同部分。模板标记只是 将其内容转储到render()方法的临时上下文变量中 使用。然后,render方法将每个标记的内容分别呈现为 类的subjectbodybodyhtml属性。

为了方便起见,send()方法将自动转换用户模型 电子邮件收件人的实例,将其格式化为“名”“姓” <;电子邮件>;“。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何避免springbootstarterparent和dependency中的flyway包冲突   java文本文件写入不起作用   java获取名为DAO类的Bean创建异常   java类路径和清单文件   如何使用Java中的模式来获取像C中的“sscanf”这样的组?   java Spring自动连接具有构造函数的类   clientSecurity运行的java geode示例失败   java JavaFX:在FXML中从ResourceBundle访问非string对象   java登录到google firebase   java对象在通过构造函数后不会更改。为什么?   java(Android)对特定页面的操作webView   javascript如何在webview的js中从java调用变量   持久化—一种在Java中存储和检索对象而不使用关系数据库的简单方法?   java Ldap获取通讯组列表中的用户   java检查温度条件   java后退按钮警报框(Android Studio)   数组java列表问题:为什么我运行它时,它会在第三次打印时打印出4?   java相对路径与绝对路径