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 从远程服务器下载东西的代码
Feb 10 Python
python自定义异常实例详解
Jul 11 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
如何用python写一个简单的词法分析器
Dec 18 Python
对Python生成器、装饰器、递归的使用详解
Jul 19 Python
详解Django将秒转换为xx天xx时xx分
Sep 27 Python
Python实现手机号自动判断男女性别(实例解析)
Dec 22 Python
Python selenium抓取虎牙短视频代码实例
Mar 02 Python
Django 用户认证Auth组件的使用
Nov 30 Python
python工具——Mimesis的简单使用教程
Jan 16 Python
PyTorch 如何设置随机数种子使结果可复现
May 12 Python
Python 线程池模块之多线程操作代码
May 20 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
php面向对象全攻略 (十) final static const关键字的使用
2009/09/30 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
Lab.js初次使用笔记
2015/02/28 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
Python微信库:itchat的用法详解
2017/08/14 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
Django中的session用法详解
2020/03/09 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
图书室标语
2014/06/21 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
毕业设计论文评语
2014/12/31 职场文书
费用申请报告范文
2015/05/15 职场文书
二审代理词范文
2015/05/25 职场文书
预备党员党支部意见
2015/06/02 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书
详解Redis瘦身指南
2021/05/26 Redis
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
2021/11/11 Python