自动化测试时,需要测试用例执行完成后,自动发送测试报告。之前有看过python自带的smtplib模块可进行发送邮件,直接import smtplib就可以使用,教程可参见:Python3 SMTP发送邮件。但是smtplib模块使用时比较繁琐,本文推荐使用yagmail这个第三方模块,用法简化很多。
一、安装
pip install yagmail
二、邮箱设置
1、邮箱打开smtp服务,以QQ邮箱为例:邮箱 - 设置 - 账户 - POP/SMTP服务 开启
2、根据提示进行生成授权码
并不是所有邮箱都有邮箱授权码。163邮箱授权码可以自己输入,qq邮箱授权码是通过发一个邮箱后得到的一个随机码,新浪邮箱则没有邮箱授权码,直接通过登录密码发送邮件。
import yagmail username='62@qq.com' passwd='wtvlefpe' # 有授权码的邮箱填授权码,没有授权码的填邮箱登录密码 mail=yagmail.SMTP(user=username, password=passwd, host='smtp.qq.com', # port=25, #ports可以不用传,会自动用默认的,一般不会改port,默认端口号一般是25或者456 smtp_ssl=True) # 如果用的是QQ邮箱的话,需要加smtp_ssl(使用的安全协议),126/63邮箱不需要 mail.send( # to='51@qq.com', # to 收件人,如果多个收件人的话,可以写成list;单个收件人只需要用字符串 to=['51@qq.com','62@qq.com'], cc='36@qq.com', # 抄送者 subject='学习发送邮件_封封', # 邮件标题 contents='你好,你今天开心吗?', # 邮件正文 attachments=[r'测试用例',r'测试结果','F:homework3.py'] # 发送附件,传的是绝对路径(绝对路径前加r,可以防止不把特殊字符 转义,多个附件用list )