自动化测试执行完成后,需要自动发送测试报告。Python发送邮件可以使用smtplib标准模块,但该模块比较繁琐,推荐使用yagmail这个第三方模块,用法比较简单。
一、邮箱设置
1、在邮箱设置里打开smtp服务
2、开启邮箱授权码
并不是所有邮箱都有邮箱授权码。163邮箱授权码可以自己输入,qq邮箱授权码是随机码,新浪邮箱则没有邮箱授权码,直接通过登录密码发送邮件。
二、利用yagmail实现邮件发送
需要注意的是:
1、yagmail实际是封装了smtplib模块,来实现的邮件发送功能
2、直接下载的yagmail模块,发送中文附件时标题乱码(解决这个问题,需要修改模块源码)
实际用法如下:
1 import yagmail 2 username = '123456@qq.com' # 邮箱账号 3 passwd = 'abcdefghijklmnopq' # 授权码,有时效(一般是一年) 4 mail = yagmail.SMTP(user=username, 5 password=passwd, 6 host='smtp.qq.com', 7 smtp_ssl=True 8 ) # 果用的是QQ邮箱或者是使用安全协议的邮箱需要加上smtp_ssl=True 9 mail.send( 10 to=['123@163.com','456@163.com'], # 收件人,多个收件人,写成list 11 cc=['789@qq.com','999@qq.com'], # 抄送人,多个收件人,写成list 12 subject='发送邮件测试', # 邮件标题 13 contents='正常上课', # 邮件正文 14 attachments=[r'C:UsersDesktop est.txt', 15 r'C:UsersDesktop est.docx']# 发多个附件,放到一个list里面 17 ) 18 print('发送成功')