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对url格式解析的方法
May 13 Python
Python的Scrapy爬虫框架简单学习笔记
Jan 20 Python
python生成式的send()方法(详解)
May 08 Python
Python用imghdr模块识别图片格式实例解析
Jan 11 Python
python+numpy实现的基本矩阵操作示例
Jul 19 Python
对Python _取log的几种方式小结
Jul 25 Python
Python 使用type来定义类的实现
Nov 19 Python
python的slice notation的特殊用法详解
Dec 27 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
使用OpenCV校准鱼眼镜头的方法
Nov 26 Python
Opencv实现二维直方图的计算及绘制
Jul 21 Python
Python办公自动化解决world文件批量转换
Sep 15 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
PHP 作用域解析运算符(::)
2010/07/27 PHP
php 归并排序 数组交集
2011/05/10 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
python Django连接MySQL数据库做增删改查
2013/11/07 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
python模拟事件触发机制详解
2018/01/19 Python
如何在python中写hive脚本
2019/11/08 Python
pyqt5实现井字棋的示例代码
2020/12/07 Python
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
军训心得体会
2013/12/31 职场文书
水果超市创业计划书
2014/01/27 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
生日宴会主持词
2014/03/20 职场文书
股权转让协议书范本
2014/04/12 职场文书
教研活动总结
2014/04/28 职场文书
党的生日演讲稿
2014/09/10 职场文书
2014年纪检工作总结
2014/11/12 职场文书
欠条样本
2015/07/03 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
开网店计划分析
2019/07/30 职场文书