python自动化发送邮件实例讲解


Posted in Python onJanuary 04, 2021

在python中,通过如下两个模块可以实现邮件的自动化操作

  1. smtplib
  2. email

smtplib模块是对SMTP协议的封装,用于发送邮件;email模块用于构建邮件内容,支持以下3种形式的邮件

  1. 纯文本
  2. html
  3. 带附件

首先来看下邮件的构建,对于一封邮件,需要指定发件人,收件人,主题,正文等内容,以最简单的纯文本邮件为例,构建方式如下

>>> from email.mime.text import MIMEText
>>> from email.header import Header
>>> subject = '主题'
>>> message = MIMEText('正文', 'plain', 'utf-8')
>>> message['From'] = Header("发件人", 'utf-8')
>>> message['To'] = Header("收件人", 'utf-8')
>>> message['Subject'] = Header(subject, 'utf-8')

通过MIMEText方法来创建邮件,第一个参数为邮件的正文,第二个参数为邮件正文的形式,plain表示纯文本,第三个参数指定编码方式;然后通过From, To, Subject等属性的设置来分别指定发件人,收件人和主题。

对于html形式的邮件,只需要指定MIMEText的第二个参数为html即可,用法如下

>>> msg = '<p>正文</p>'
>>> message = MIMEText(msg, 'html', 'utf-8')

对于带附件的邮件,需要通过MIMEMultipart来创建邮件,用法如下

>>> from email.mime.multipart import MIMEMultipart
>>> message = MIMEMultipart()
>>> message.attach(MIMEText('正文', 'plain', 'utf-8'))
>>> attach = MIMEText(open('input.txt', 'rb').read(), 'base64', 'utf-8')
>>> attach["Content-Type"] = 'application/octet-stream'
>>> attach["Content-Disposition"] = 'attachment; filename="test.txt"'
>>> message.attach(attach)

创建好邮件之后,就可以通过SMTP来发送了,这里以QQ邮箱为例,首先需要开启QQ邮箱的SMTP服务器,然后生成授权码,图示如下

python自动化发送邮件实例讲解

用QQ邮箱发送邮件的代码如下

>>> import smtplib
>>> from email.mime.text import MIMEText
>>> from email.header import Header
>>> message = MIMEText('正文', 'plain', 'utf-8')
>>> message['From'] = Header("发件人", 'utf-8')
>>> message['To'] = Header("收件人", 'utf-8')
>>> message['Subject'] = Header('主题', 'utf-8')
>>> server=smtplib.SMTP_SSL("smtp.qq.com", 465)
>>> server.login('xxxxxxxx@qq.com', 'dvyybvbwpnnbbdaj')
>>> server.sendmail('xxxxxxxx@qq.com', 'xxxxxxxx@qq.com' , message.as_string())

对于需要定期发送,且内容较为固定的邮件,通过自动化可以大大减少工作量,比如通过python监控磁盘空间,当使用率超过80%时,自动向运维人员发送邮件,以提醒备份和清理磁盘。

到此这篇关于python自动化发送邮件实例讲解的文章就介绍到这了,更多相关使用python自动化发送邮件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python对list列表结构中的值进行去重的方法总结
May 07 Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 Python
python+selenium实现京东自动登录及秒杀功能
Nov 18 Python
对python中的for循环和range内置函数详解
Apr 17 Python
python使用turtle库绘制树
Jun 25 Python
python实现将一个数组逆序输出的方法
Jun 25 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
Apr 15 Python
如何利用python web框架做文件流下载的实现示例
Jun 02 Python
Opencv+Python识别PCB板图片的步骤
Jan 07 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 Python
利用Pycharm连接服务器的全过程记录
Jul 01 Python
Python 操作pdf pdfplumber读取PDF写入Exce
Aug 14 Python
Python Selenium库的基本使用教程
Jan 04 #Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 #Python
python自动打开浏览器下载zip并提取内容写入excel
Jan 04 #Python
python Scrapy框架原理解析
Jan 04 #Python
如何用 Python 处理不平衡数据集
Jan 04 #Python
Python创建简单的神经网络实例讲解
Jan 04 #Python
python实现跨年表白神器--你值得拥有
Jan 04 #Python
You might like
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
GD输出汉字的函数的分析
2006/10/09 PHP
PHP将两个关联数组合并函数提高函数效率
2014/03/18 PHP
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
了解一点js的Eval函数
2012/07/26 Javascript
JS画线(实例代码)
2013/11/20 Javascript
js改变鼠标的形状和样式的方法
2014/03/31 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
js微信分享API
2020/10/11 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
2017/02/19 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
使用JavaScript破解web
2018/09/28 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
python中实现数组和列表读取一列的方法
2018/04/03 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
2020/02/28 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
html5菜单折纸效果
2014/04/22 HTML / CSS
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
十佳教师事迹材料
2014/01/11 职场文书
开工典礼策划方案
2014/05/23 职场文书
竞选学委演讲稿
2014/09/13 职场文书
公证书格式
2015/01/23 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
mysql联合索引的使用规则
2021/06/23 MySQL
关于JavaScript回调函数的深入理解
2021/06/27 Javascript