imap读取邮箱和附件_Python发送带附件的邮件

要活成两种样子:发光和不发光,不发光的时候都是在为发光做准备

fd779a2b7b73bb071b660832f7f4ecda.png

这篇我们主要讲python如何连接数据库,并且发送带附件的邮件。

老规矩,文章底部可以获取源代码哦~0~

1

连接数据库

python为我们提供了操作数据库的模块,pymssql和pymysql,从模块名称就可以看出,pymssql是用于SQL Server数据库,而pymysql是用于MySQL数据库,两者用法基本一样。

此处我们以SQL Server为例。

与发送邮件类似,连接数据库也是模拟人工操作,我们需要填入“服务器名称”、“登录名”和“密码”连接到服务器后,找到需要的数据库,执行查询语句,才能得到需要的数据。

ca2b0cbe0bedacec61a494f12178cd9e.png

connect(server, username, password, database)

server:服务器名称或IP

username:登录名

password:密码

database:数据库名称

注:连接到指定服务器的指定数据库

cursor()

注:创建游标,游标(Cursor)是查看或者处理数据的一种方法,游标可以在结果集中一次一行或多行向前/后浏览数据。

fetchall()

注:FETCH语句可以从游标中提取特定的数据,fetchall方法是提取所有的数据。

close()

注:关闭数据库连接

d86ab5da5043ebb2ad675d23c337d9f0.png

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模块中的一个方法,为单元格填充数据。

d3d8fa6a01c683b76865ab93c541fbe5.png

3

添加邮件附件

附件有很多类型,xlsx,jpg,pdf,mp3,mp4,但不管什么类型的附件,我们都统一使用MIMEApplication,打开文件后以“二进制”方式读取,add_header中加入附件的声明"attachment"。客户端(QQ邮箱)收到这个声明后会根据文件扩展名来确定文件类型。

b43197b5452f7b6b6a08cbdd90d215fd.png

4

实现效果

将以上三块代码拼到一起,并将参数改成你自己的,运行一下就可以发送邮件了。

ecb46013172a305db6288d104b21d9c6.png

我们发现附件的名称是带有20200220142702的,这个就是代码运行的时间,表示2020年2月20日14时27分02秒,这样可以完全避免文件重名。

下篇继续更新python如何发送HTML格式的邮件~

获取python代码点击了解更多~0~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值