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提交小工具
Jun 27 Python
python查询mysql中文乱码问题
Nov 09 Python
python在linux系统下获取系统内存使用情况的方法
May 11 Python
在Django框架中运行Python应用全攻略
Jul 17 Python
在DigitalOcean的服务器上部署flaskblog应用
Dec 19 Python
详解Python 定时框架 Apscheduler原理及安装过程
Jun 14 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
python实现图片压缩代码实例
Aug 12 Python
节日快乐! Python画一棵圣诞树送给你
Dec 24 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
django API 中接口的互相调用实例
Apr 01 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 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中常见的mongodb查询操作
2013/06/20 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
jQuery textarea的长度进行验证
2009/05/06 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
Javascript this 的一些学习总结
2012/08/31 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
PyQt5实现下载进度条效果
2018/04/19 Python
Python函数装饰器实现方法详解
2018/12/22 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
Python zip函数打包元素实例解析
2019/12/11 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
css3的transform造成z-index无效解决方案
2014/12/04 HTML / CSS
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
GWT的应用有哪两种部署模式
2012/12/21 面试题
党员带头倡议书
2015/04/29 职场文书
消防安全培训工作总结
2015/10/23 职场文书
导游词之丽江普济寺
2019/10/22 职场文书
总结Python使用过程中的bug
2021/06/18 Python
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle