python 自动化发送邮件_干货 | 解放双手,用Python实现自动发送邮件
使用Python实现自动化邮件发送,可以让你摆脱繁琐的重复性业务,可以节省非常多的时间。
Python有两个内置库:smtplib和email,能够实现邮件功能,smtplib库负责发送邮件,email库负责构造邮件格式和内容。
邮件发送需要遵守SMTP协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
1、先导入相关的库和方法
import smtplib
import email
# 负责构造文本
from email.mime.text import MIMEText
# 负责构造图片
from email.mime.image import MIMEImage
# 负责将多个对象集合起来
from email.mime.multipart import MIMEMultipart
from email.header import Header
2、设置邮箱域名、发件人邮箱、邮箱授权码、收件人邮箱
# SMTP服务器,这里使用163邮箱
mail_host = "smtp.163.com"
# 发件人邮箱
mail_sender = "******@163.com"
# 邮箱授权码,注意这里不是邮箱密码,如何获取邮箱授权码,请看本文最后教程
mail_license = "********"
# 收件人邮箱,可以为多个收件人
mail_receivers = ["******@qq.com","******@outlook.com"]
3、构建MIMEMultipart对象代表邮件本身,可以往里面添加文本、图片、附件等
mm = MIMEMultipart('related')
4、设置邮件头部内容
# 邮件主题
subject_content = """Python邮件测试"""
# 设置发送者,注意严格遵守格式,里面邮箱为发件人邮箱
mm["From"] = "sender_name<******@163.com>"
# 设置接受者,注意严格遵守格式,里面邮箱为接受者邮箱
mm["To"] = "receiver_1_name<******@qq.com>,receiver_2_name<******@outlook.com>"
# 设置邮件主题
mm["Subject"] = Header(subject_content,'utf-8')
5、添加正文文本
# 邮件正文内容
body_content = """你好,这是一个测试邮件!"""
# 构造文本,参数1:正文内容,参数2:文本格式,参数3:编码方式
message_text = MIMEText(body_content,"plain","utf-8")
# 向MIMEMultipart对象中添加文本对象
mm.attach(message_text)
6、添加图片
# 二进制读取图片
image_data = open('a.jpg','rb')
# 设置读取获取的二进制数据
message_image = MIMEImage(image_data.read())
# 关闭刚才打开的文件
image_data.close()
# 添加图片文件到邮件信息当中去
mm.attach(message_image)
7、添加附件(excel表格)
# 构造附件
atta = MIMEText(open('sample.xlsx', 'rb').read(), 'base64', 'utf-8')
# 设置附件信息
atta["Content-Disposition"] = 'attachment; filename="sample.xlsx"'
# 添加附件到邮件信息当中去
mm.attach(atta)
8、发送邮件
# 创建SMTP对象
stp = smtplib.SMTP()
# 设置发件人邮箱的域名和端口,端口地址为25
stp.connect(mail_host, 25)
# set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息
stp.set_debuglevel(1)
# 登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码
stp.login(mail_sender,mail_license)
# 发送邮件,传递参数1:发件人邮箱地址,参数2:收件人邮箱地址,参数3:把邮件内容格式改为str
stp.sendmail(mail_sender, mail_receivers, mm.as_string())
print("邮件发送成功")
# 关闭SMTP对象
stp.quit()
结果
看看邮箱接收到来自python的邮件长什么样:
附:如何设置邮箱授权码
本文测试发送邮箱为163邮箱,可按如下步骤获取邮箱授权码
第一步:登陆网页163邮箱,找到设置并打开
第二步:点击设置中的客户端授权密码
第三步:点击开启,并按提示设置你的授权密码
python 自动化发送邮件_干货 | 解放双手,用Python实现自动发送邮件相关推荐
- python自动化从零开始_从零开始的自动化测试框架——Python篇
随着软件测试领域对于技术要求越来越清晰,到现在测试人员在市场上的岗位需求也变得越来越复杂.极大部分的企业都开始对自动化测试岗位有了更多的需要.自然而然,自动化测试技术开始成为了下一个被玩烂的技术点.网 ...
- 如何用python爬新闻_干货:如何利用 Python 爬虫实现群发新闻早报?(详细)
1. 场景 经常有小伙伴在交流群问我,每天的早报新闻是怎么获取的? 其实,早期使用的方案,是利用爬虫获取到一些新闻网站的标题,然后做了一些简单的数据清洗,最后利用 itchat 发送到指定的社群中. ...
- 如何用python自动发邮件_Python | 解放双手,用Python实现自动发送邮件
解放双手,用Python实现自动发送邮件 使用Python实现自动化邮件发送,可以让你摆脱繁琐的重复性业务,节省非常多的时间. Python有两个内置库:smtplib和email,能够实现邮件功能, ...
- 云计算Python自动化运维开发实战 三、python文件类型
为什么80%的码农都做不了架构师?>>> 云计算Python自动化运维开发实战 三.python文件类型 导语: python常用的有3种文件类型 1. 源代码 py ...
- 怎样用python自动化办公_会python基础,如何学习自动化办公?
Python 自动化,爽爽的解决 本课程完全让你摒弃重复率高,机械操作的劳动,解放双手,自动化办公,比如Excel表的各种计算,合并,比对,尤其是跨表,大量数据的,连Excel打开都费劲的,Pytho ...
- python xlwings 切片_python + xlwings 解放双手系列(1) 入门
背景:孩子妈工作需要,每次都需要手动复制大量excel文件,可用python代码来解放双手 目录:python获得指定文件夹下所有文件路径(指定后缀名) python拷贝文件 python选择文件对话 ...
- print python excel分隔_合并/拆分 Excel?Python、VBA轻松自动化
作者 | Ryoko 来源 | 凹凸数据 当你收集了 n 个人的 EXCEL 记录表,需要将它们汇成一个总表时你会怎么做呢? 如果不通过技术手段,要一个个打开再复制粘贴也太麻烦了吧! 此时就需要一个通 ...
- 石头机器人拖地水量调节_科技解放双手:石头扫拖一体机器人使用体验
科技解放双手:石头扫拖一体机器人使用体验 2020-03-17 18:00:00 9点赞 7收藏 1评论 一.前言 随着扫地机器人的普及,现在很多厂商已经开始在扫地机的基础上增加拖地模式,也就是现在扫 ...
- 福玛特机器人怎么开机_五一解放双手的选择 福玛特扫地机器人解救你
01五一解放双手的好选择 世界那么大,不想去看看?五一小长假,不妨和家人来一次短途旅行.各位"煮夫"和主妇们,放下手中的家务活,尽情享受这个假期吧!家里卫生怎么办?交给福玛特扫地机 ...
- python空气质量分析与预测_干货!如何用 Python+KNN 算法实现城市空气质量分析与预测?...
原标题:干货!如何用 Python+KNN 算法实现城市空气质量分析与预测? 作者 | 李秋键 责编 | 伍杏玲 封图 | CSDN 付费下载自东方 IC 出品 | CSDN(ID:CSDNnews) ...
最新文章
- 多线程实现生产者消费者模型
- Python快速学习02:基本数据类型 序列
- 待在小公司好多年了,微服务还没怎么玩过。。。
- android圆形进度条ProgressBar颜色设置
- 携程Docker实践
- Redis 面试题补充与汇总
- android自定义组合view,安卓自定义view之组合view
- 分享一个同行的blog,UI方面的。
- MFC Windows 程序设计[二十一]之树形控件
- 英文学术论文写作常用词句积累
- 音频特效生成与算法 2
- ramda 函数 Function
- w7计算机无法管理员权限设置,win7管理员权限设置技巧:教你win7管理员权限设置是灰色的处理方法...
- line 1: syntax error: unexpected (
- iOS图形编辑之Core Graphics
- 屏蔽鼠标右键,F1帮助和常用快捷键
- 若依RuoYi-Vue前后端项目启动流程
- php获取QQ音乐直链,微信小程序-获取QQ音乐直链
- ie8与ie9的区别
- MT5白标搭建, MT5CRM源码