确定要发送的内容
将table1,table2作为发送内容
|
|
将table转化成HTML格式
此处用到jinja2模板引擎
* jinja2中有一个核心对象: template Environment(模板环境), 这个类的实例被用于存储配置信息, 全局对象, 从文件系统或其他位置加载模板, 甚至如果你使用Template的构造器创建一个String类型的模板的时候, 也会自动的创建一个Environment对象.
* Environment一般在一个应用中只创建一个, 当系统中有不同的配置需求的时候, 就需要创建多个Environment对象相互支持
* 创建一个Environment对象: env = Environment(loader = FileSystemLoader(‘templates’))…意思是创建一个template Environment对象, 使用的加载器loader是FileSystemLoader类型, 可以加载的模板是当前工作目录下的templates目录下的模板文件
* 加载一个模板: template = env.get_template(‘mytemplate.html’), 使用env的模板环境加载名为mytemplate.html的模板文件.
* 渲染一个模板: template.render(date_str=date_str), 渲染模板template, 传入了模板参数date_str值为date_str
|
|
header模板定义了,我要发送的邮件的开头内容,内容如下:
- 需要传进去的参数为date_str和author
DEAR ALL~,此为,自动发送的邮件,请勿直接回复,如有疑问,请与联系,谢谢!
main_body_templet模板定义了我要发送的内容,里面内容很简单,因为每次添加的内容只是一张表,所以如下:
|
|
注意上面的模板中,我调用了detail模板,detail内容如下:里面的内容是我对要发送的table的一些定义
- 此处我定义了even和odd是为了不同行显示不同颜色,也可以在style里面定义
|
|
利用模板
|
|
- start_statement内容如下
|
|
'\n<h4>DEAR ALL~,此为2017-05-17,自动发送的邮件,请勿直接回复,如有疑问,请与Icey联系,谢谢! </h4>\n'
- 下一步我们要去渲染table的模板,此处我定义了一个函数,可以得到我要发送的html,内容如下:
|
|
|
|
- 一般情况下我们在发送的表格前都会加一些备注,以便收件人容易理解
- 将我们添加的内容和输出的内容进行组合
|
|
|
|
['<h4>DEAR ALL~,此为2017-05-17,自动发送的邮件,请勿直接回复,如有疑问,请与Icey联系,谢谢! </h4>',
'<h2>table1的内容:</h2>',
' <table>',
"\t\t<tr class ='tableHeader'>",
' \t<td>序号</td>',
' \t<td>A</td>',
' \t<td>B</td>',
' \t</tr>',
"\t\t<tr class='odd'>",
' \t<td>0</td>',
' \t<td>1</td>',
' \t<td>2</td>',
' \t</tr>',
"\t\t<tr class ='even'>",
' \t<td>1</td>',
' \t<td>2</td>',
' \t<td>3</td>',
' \t</tr>',
"\t\t<tr class='odd'>",
' \t<td>2</td>',
' \t<td>3</td>',
' \t<td>4</td>',
' \t</tr>',
' </table>',
'<h2>table2的内容:</h2>',
' <table>',
"\t\t<tr class ='tableHeader'>",
' \t<td>序号</td>',
' \t<td>C</td>',
' \t<td>D</td>',
' \t</tr>',
"\t\t<tr class='odd'>",
' \t<td>0</td>',
' \t<td>1</td>',
' \t<td>2</td>',
' \t</tr>',
"\t\t<tr class ='even'>",
' \t<td>1</td>',
' \t<td>3</td>',
' \t<td>3</td>',
' \t</tr>',
"\t\t<tr class='odd'>",
' \t<td>2</td>',
' \t<td>3</td>',
' \t<td>4</td>',
' \t</tr>',
' </table>']
定义要发送的内容的格式
- 格式这些可以在网上找,有很多漂亮的
|
|
将发送内容与格式结合在一起,得到最终发送内容及格式
|
|
定义一个发送邮件的函数
|
|
利用上面定义的发邮件的函数,将相应参数传进去就可以发送邮件啦~
|
|