自动发送测试报告邮件

接上篇生成测试报告《Unitest+HTMLTestRunner生成网页版测试报告》,想要自动把测试报告自动发送出去
(吐槽一下原力规则,删文要扣原力值,外链被评为低质量文章也会扣,本人之前整合了一下博文,删了好几篇,已经负分了555~,所以这里就不放链接了,感兴趣的往前翻翻)

代码

#coding=utf-8
import smtplib
import os, time, datetime
from email.header import Header
from  email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

##邮件信息配置
sender = '15***[email protected]'##发件人
receiver = '[email protected]'##收件人
auth_code = 'J***Y' ##授权码

smtpserver = 'smtp.163.com'
subject = 'Test Report'

#读取附件内容
fp = open("2024-01-06 15-26-15result.html", 'rb')
mail_body = fp.read()
fp.close()

#HTML形式的文件内容
html = MIMEText(mail_body, _subtype='html', _charset='utf-8')
html['Subject'] = subject
html['from'] = sender
html['to'] = receiver


#html附件 将测试报告放在附件中发送
att1 = MIMEText(mail_body, 'base64', 'gb2312')
att1['content-Type'] = 'application/octet-stream'
att1['content-Disposition'] = 'attachment; filename = TestReport.html'

msg = MIMEMultipart()
msg['Subject'] = 'version1_Report'##邮件的标题
msg.attach(html) #将html文件内容附加在msg里
msg.attach(att1) #新增一个附件


##连接 登陆上smtp服务器
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(sender, auth_code)

#发送邮件
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()

Q1.smtp是什么?

自动发送测试报告邮件_第1张图片
图片出自 谢希仁 《计算机网络》

SMTP是发送邮件的协议,邮件发送都要经过SMTP服务器
SMTP服务器的地址百度一下你就知道

Q2.‘邮件信息配置’中的授权码怎么获取?

以163邮箱为例:
自动发送测试报告邮件_第2张图片

自动发送测试报告邮件_第3张图片
开启以后会有一个默认的授权码,也可以自己新增

Q3.发送多个收件人?

receiver =  "[email protected],[email protected]"

如果不想群发的话也可以把收件人写入csv,按行读取,设置收件人并发送

结果

在这里插入图片描述

自动发送测试报告邮件_第4张图片

你可能感兴趣的:(测试,功能测试,单元测试)