Python+MySqldb+Pandas+Smtplib发送邮件

(Photo byMia BakeronUnsplash)

今天看到又耳笔记这篇导出mysql数据,利用pandas生成excel文档,并发送邮件文章时,我决定把它实现出来。

查资料、编码、测试、优化、添加注释……花了3个多小时将全部工作完成。现在整理出来,发布在这里。本文贴出的就是全部源代码,只要安装了相应的包,在Python 2.7环境下可以直接拿过去跑,本机测试邮件能够发送成功。没有Mysql和Pandas也不要紧,注释掉fetch_db和gen_xls函数,直接执行sendmsg也行。

环境准备:

Mac os 10.11.6 + Anaconda Navigator 1.2.1+ Python 2.7.12 + Sublime 3.0

技术要点:

Mysqldb数据库连接

Pandas Dataframe转换Excel文件

正则表达式匹配邮箱

smtplib协议实现原理

代码实现:

执行结果:

生成的excel文件如下图所示,表中数据使用Tushare获取。

登录邮箱,显示邮件发送成功,附件内容与excel数据一致,没有乱码。

总结:

全部代码150多行,没有什么复杂的技术难题,对老司机来说,这个任务小菜一碟。测试中遇到的难点问题,全部通过注释语句标注出来了,请重点注意。如果没有Python基础,有些地方你可能需要花一些时间理解。阮一峰博客里面有人留言说,"现在的程序员关注底层技术的越来越少了"。SMTP协议就是一个很好的例子,我们每天都在用,但根本没有想过它是如何实现的,延伸阅读里面对SMTP协议有比较详细的介绍。当然,亲自动手把这个程序写一遍,对SMTP协议会有一个更深入的理解。

参考资料:

导出mysql数据,利用pandas生成excel文档,并发送邮件

(http://blog.51cto.com/youerning/1708941)

SMTP发送邮件

(https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832745198026a685614e7462fb57dbf733cc9f3ad000)

Zabbix监控之邮件发送失败-smtp-server: 错误代码550与535

(http://blog.51cto.com/clovemfong/1702105)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180211G14N5300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励