在自动化测试的时候,有时需要用例执行完,自动发送测试报告。Python发送邮件可以使用smtplib标准模块,但该模块比较繁琐,推荐使用yagmail这个第三方模块,用法简化很多。
一、邮箱设置
1、在邮箱设置里打开smtp服务
2、开启邮箱授权码
并不是所有邮箱都有邮箱授权码。163邮箱授权码可以自己输入,qq邮箱授权码是随机码,新浪邮箱则没有邮箱授权码,直接通过登录密码发送邮件。
二、利用yagmail实现发送邮件
需要注意的是:
1、yagmail实际是封装了smtplib模块,来实现的邮件发送功能
2、直接下载的yagmail模块,发送中文附件时标题乱码(解决这个问题,需要修改模块源码)
yagmail的使用如下
import yagmail username = 'abc@163.com' passwd = '123456'#有授权码的邮箱填授权码,没有授权码的填登录密码 #实例化 mail = yagmail.SMTP(user=username, password=passwd, host='smtp.163.com', #smtp_ssl = True,#用安全协议的邮箱需要指定,如qq邮箱 # #port = 25#默认端口号不用改,25或者465 ) #调用实例方法 mail.send( to=['123@qq.com','321@qq.com'],#如果是多个收件人的话,写成list就行 cc='456@qq.com',#抄送 subject='这是主题',#邮件标题 contents='我是正文',#邮件正文 attachments=['tmp.py',r'D:\workspace\python\test.txt'], #附件,多个附件写成list,绝对路径前用r,防止\n转义 #如果是win10绝对路径用两个\\就可以了D:\\workspace\\python\\test.txt ) print('发送成功')