现实生活中,若要针对每个人进行邮件的定制化,群发给公司客户、内部员工、亲戚朋友,则需更加高级的邮件发送方式。
我们可以通过HTML制作一封精美的元旦祝福邮件,但是邮件的内容——比如姓名、祝福语等应该怎样动态渲染呢?答案是jinja2.
jinja2 是一个Python 的模板引擎,使用jinja2,我们能够在邮件HTML中设定占位符,在Python发送邮件的时候,将指定文本渲染到该占位符中,实现动态渲染的目的。
举一个jinja2的简单例子:
from jinja2 import Template
name = 'Peter'
age = 34
tm = Template("My name is {
{ name }} and I am {
{ age }}")
msg = tm.render(name=name, age=age)
print(msg)
使用 { {}} 圈起来的是占位符,称之为模板字符串。模板字符串呈现两个变量:名称和年龄,在这个例子中,硬编码了name和age的值传入模板,得到输出:
My name is Peter and I am 34
在本篇文章中,我将教大家如何通过Html及Python+jinja2给你的亲朋好友们定制元旦祝福邮件。
1.准备
01.开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,请进行安装。
02.如果你用Python的目的是数据分析,可以直接安装Anaconda,它内置了Python和pip.
03.此外,推荐大家用VSCode编辑器,因为它有许多许多的优点
准备输入命令安装依赖,如果你没有VSCode编辑器,Windows环境下打开 Cmd (开始-运行-CMD),苹果系统环境下请打开 Terminal (command+空格输入Terminal),如果你用的是VSCode编辑器或Pycharm,可以直接在下方的Terminal中输入命令:
pip install jinja2
pip install yagmail
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:810735403
2.编写HTML
将需要发送的邮件模板的HTML编写好。并将占位符变量提前写入HTML中。由于我的HTML文件过大,这里就不完全展示了,只展示几个关键变量。
为简化教程的复杂度,并尽可能覆盖到知识点,这里我们使用4个变量:
1.LOGO图片(让你更好地理解图片是如何渲染到HTMl里并发邮件)
2.背景图片
3.祝福对象
4.祝福语言
首先,是图片变量的配置:
<tr>
<td valign="left" width="50%" class="logo sub-gd" style="