添加附件 邮件发送_Python发送带附件的邮件
要活成两种样子:发光和不发光,不发光的时候都是在为发光做准备这篇我们主要讲python如何连接数据库,并且发送带附件的邮件。老规矩,文章底部可以获取源代码哦~0~— 1 —连接数据库python为我们提供了操作数据库的模块,pymssql和pymysql,从模块名称就可以看出,pymssql是用于SQL Server数据库,而pymysql是用于MySQL数据库,两者用法基本一样。此处我们以SQL
要活成两种样子:发光和不发光,不发光的时候都是在为发光做准备
这篇我们主要讲python如何连接数据库,并且发送带附件的邮件。
老规矩,文章底部可以获取源代码哦~0~
— 1 —
连接数据库
python为我们提供了操作数据库的模块,pymssql和pymysql,从模块名称就可以看出,pymssql是用于SQL Server数据库,而pymysql是用于MySQL数据库,两者用法基本一样。
此处我们以SQL Server为例。
与发送邮件类似,连接数据库也是模拟人工操作,我们需要填入“服务器名称”、“登录名”和“密码”连接到服务器后,找到需要的数据库,执行查询语句,才能得到需要的数据。
①connect(server, username, password, database)
server:服务器名称或IP
username:登录名
password:密码
database:数据库名称
注:连接到指定服务器的指定数据库
②cursor()
注:创建游标,游标(Cursor)是查看或者处理数据的一种方法,游标可以在结果集中一次一行或多行向前/后浏览数据。
③fetchall()
注:FETCH语句可以从游标中提取特定的数据,fetchall方法是提取所有的数据。
④close()
注:关闭数据库连接
sqlserver_connect函数有两个返回值,一个是所查询的所有数据,另一个是数据的所有字段名。
— 2 —
生成xlsx文件
python处理Excel文件的模块主要有三个:xlrd,xlwt,openpyxl
我们为什么使用openpyxl模块来处理Excel,而不是另外两个呢?
因为xlwt针对的是Excel2007之前的版本(.xls),要求单个sheet不超过65535行,而openpyxl则主要针对Excel2007之后的版本(.xlsx),它支持单个sheet 100W+行。
另外,我们一般会单独建个文件夹用于存放生成的xlsx文件,为了区分同一段代码在不同时间执行生成的数据,我们会习惯于在文件名中加入代码执行的当前时间。
cell(row, col, value)
row:行(从1开始,这点与python不同)
col:列(也是从1开始,这点与python不同)
value:值
注:openpyxl模块中的一个方法,为单元格填充数据。
— 3 —
添加邮件附件
附件有很多类型,xlsx,jpg,pdf,mp3,mp4,但不管什么类型的附件,我们都统一使用MIMEApplication,打开文件后以“二进制”方式读取,add_header中加入附件的声明"attachment"。客户端(QQ邮箱)收到这个声明后会根据文件扩展名来确定文件类型。
— 4 —
实现效果
将以上三块代码拼到一起,并将参数改成你自己的,运行一下就可以发送邮件了。
我们发现附件的名称是带有20200220142702的,这个就是代码运行的时间,表示2020年2月20日14时27分02秒,这样可以完全避免文件重名。
下篇继续更新python如何发送HTML格式的邮件~
获取python代码点击了解更多~0~
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)