使用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实现自动发送邮件相关推荐

  1. python自动化从零开始_从零开始的自动化测试框架——Python篇

    随着软件测试领域对于技术要求越来越清晰,到现在测试人员在市场上的岗位需求也变得越来越复杂.极大部分的企业都开始对自动化测试岗位有了更多的需要.自然而然,自动化测试技术开始成为了下一个被玩烂的技术点.网 ...

  2. 如何用python爬新闻_干货:如何利用 Python 爬虫实现群发新闻早报?(详细)

    1. 场景 经常有小伙伴在交流群问我,每天的早报新闻是怎么获取的? 其实,早期使用的方案,是利用爬虫获取到一些新闻网站的标题,然后做了一些简单的数据清洗,最后利用 itchat 发送到指定的社群中. ...

  3. 如何用python自动发邮件_Python | 解放双手,用Python实现自动发送邮件

    解放双手,用Python实现自动发送邮件 使用Python实现自动化邮件发送,可以让你摆脱繁琐的重复性业务,节省非常多的时间. Python有两个内置库:smtplib和email,能够实现邮件功能, ...

  4. 云计算Python自动化运维开发实战 三、python文件类型

    为什么80%的码农都做不了架构师?>>>    云计算Python自动化运维开发实战 三.python文件类型 导语: python常用的有3种文件类型 1. 源代码     py ...

  5. 怎样用python自动化办公_会python基础,如何学习自动化办公?

    Python 自动化,爽爽的解决 本课程完全让你摒弃重复率高,机械操作的劳动,解放双手,自动化办公,比如Excel表的各种计算,合并,比对,尤其是跨表,大量数据的,连Excel打开都费劲的,Pytho ...

  6. python xlwings 切片_python + xlwings 解放双手系列(1) 入门

    背景:孩子妈工作需要,每次都需要手动复制大量excel文件,可用python代码来解放双手 目录:python获得指定文件夹下所有文件路径(指定后缀名) python拷贝文件 python选择文件对话 ...

  7. print python excel分隔_合并/拆分 Excel?Python、VBA轻松自动化

    作者 | Ryoko 来源 | 凹凸数据 当你收集了 n 个人的 EXCEL 记录表,需要将它们汇成一个总表时你会怎么做呢? 如果不通过技术手段,要一个个打开再复制粘贴也太麻烦了吧! 此时就需要一个通 ...

  8. 石头机器人拖地水量调节_科技解放双手:石头扫拖一体机器人使用体验

    科技解放双手:石头扫拖一体机器人使用体验 2020-03-17 18:00:00 9点赞 7收藏 1评论 一.前言 随着扫地机器人的普及,现在很多厂商已经开始在扫地机的基础上增加拖地模式,也就是现在扫 ...

  9. 福玛特机器人怎么开机_五一解放双手的选择 福玛特扫地机器人解救你

    01五一解放双手的好选择 世界那么大,不想去看看?五一小长假,不妨和家人来一次短途旅行.各位"煮夫"和主妇们,放下手中的家务活,尽情享受这个假期吧!家里卫生怎么办?交给福玛特扫地机 ...

  10. python空气质量分析与预测_干货!如何用 Python+KNN 算法实现城市空气质量分析与预测?...

    原标题:干货!如何用 Python+KNN 算法实现城市空气质量分析与预测? 作者 | 李秋键 责编 | 伍杏玲 封图 | CSDN 付费下载自东方 IC 出品 | CSDN(ID:CSDNnews) ...

最新文章

  1. 多线程实现生产者消费者模型
  2. Python快速学习02:基本数据类型 序列
  3. 待在小公司好多年了,微服务还没怎么玩过。。。
  4. android圆形进度条ProgressBar颜色设置
  5. 携程Docker实践
  6. Redis 面试题补充与汇总
  7. android自定义组合view,安卓自定义view之组合view
  8. 分享一个同行的blog,UI方面的。
  9. MFC Windows 程序设计[二十一]之树形控件
  10. 英文学术论文写作常用词句积累
  11. 音频特效生成与算法 2
  12. ramda 函数 Function
  13. w7计算机无法管理员权限设置,win7管理员权限设置技巧:教你win7管理员权限设置是灰色的处理方法...
  14. line 1: syntax error: unexpected (
  15. iOS图形编辑之Core Graphics
  16. 屏蔽鼠标右键,F1帮助和常用快捷键
  17. 若依RuoYi-Vue前后端项目启动流程
  18. php获取QQ音乐直链,微信小程序-获取QQ音乐直链
  19. ie8与ie9的区别
  20. MT5白标搭建, MT5CRM源码

热门文章

  1. 统计字符串中某字符出现次数
  2. python学习笔记:第21天 常用内置模块之collections和time
  3. chattr和lsattr的基本用法
  4. C++-Qt【1】-退出程序静态调试
  5. Swift - 通过url地址打开web页面
  6. NGUI系列教程五(角色信息跟随)
  7. [iphone-游戏]游戏中常用的数据组织方式和解析
  8. C++11中thread库join和detach的区别
  9. OSPFv3中LSA详解(八)——Type5类LSA详解
  10. 农业农村部:非洲猪瘟对猪肉市场价格影响有限