1. 前言
发送邮件,我们在平时工作中经用到,做为测试人员,在自动化测试中用的也比较多,需要发送邮件给某领导
SMTP是Python默认的邮件模块,可以发送纯文本、富文本、HTML 等格式的邮件
今天我们来说一说Python 发送邮件的 3 种方式
2. 开启邮箱SMTP服务和获取授权码
登录 QQ 邮箱为例,我们需要开启 SMTP 服务,登录邮箱依次点击设置-账户
开启SMTP
然后,生成授权码
注:
需要开启POP3/SMTP服务
授权码做为邮箱密码
1. 方式一:smtplib
smtplib是 Python 自带的依赖库,可以直接导入使用,通过邮箱账号、授权码、邮箱服务器地址初始化一个 SMTP 实例,然后进行连接
初学者感觉这个会挺复杂,请继续往下看
1.1发送纯文本邮件
![](https://img2020.cnblogs.com/blog/1299068/202007/1299068-20200715131252734-1748655620.png)
运行结果:
注:SMTP邮件个人不推荐使用,所以只演式一种发送纯文本邮件
2. 方式二:zmail
由于SMPT太过于麻烦复杂,所以就用zamil发送邮件试试。
zmail模块只支持Python3模块,该模块为第3方模块,需自行安装(pip install zmail)
使用 Zmail 发送接收邮件方便快捷,不需手动添加服务器地址、端口以及适合的协议,可以轻松创建 MIME 对象和头文件
注意:Zmail 仅支持 Python3,不支持 Python2
#!/usr/bin/python3 import zmail def send_mail(): # 定义邮件 mail = {"subject": "接口测试报告",# 任一填写 'content_text': '手机号归属地_API自动化测试报告',# 任一填写 # 多个附件使用列表 "attachments": "E:/report/result.html" } # 自定义服务器 server = zmail.server("发送人邮箱.com", "QQ邮箱是用授权码", smtp_host="smtp.qq.com", smtp_port = 465) # 发送邮件 server.send_mail("收件人QQ邮箱", mail) try: send_mail() except FileNotFoundError: print("未找到文件") else: print("发送成功")
3. 方式三:yagmail
他们都说yagmail 只需要三行代码,就可以实现发送邮件,爽歪歪!
相比 zmail,yagmail 实现发送邮件的方式更加简洁优雅
首先,安装依赖库(pip install yagmail)
发送邮件有三个步骤:
1、连接服器(类似你先要登录邮箱)
2、编辑邮件内容和主题
3、发送邮件
#!/usr/bin/python3 import yagmail # 定义用户名、授权码、服务器地址且连接服务器 mail_server = yagmail.SMTP(user='发件人邮箱', passwd='授权码', host='smtp.qq.com') # 发送对象列表 Email_to = ['收件人邮箱'] subject = '任一填写' Email_text = "任一填写内容" # 多个附件用逗号隔开 attachments = ['html报告目录地址'] # 发送邮件 mail_server.send(Email_to, subject, Email_text, attachments)
最后
总结了 Python3种发送 邮件的方式,实际项目中,更推荐使用后两种方式
如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到902061117,群内会有不定期的分享测试资料。
如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。