使用python将最新的测试报告以附件的形式发到指定邮箱


Posted in Python onSeptember 20, 2019

具体代码如下所示:

import smtplib, email, os, time
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
#设置smtplib所需的参数
smtpserver = 'smtp.qq.com' #SMTP服务器地址
username = 'xxx@qq.com' # 发件人地址,通过控制台创建的发件人地址
password = '******' # 发件人密码,通过控制台创建的发件人密码
receiver = ['xxx@dadaodata.com'] #单个收件人
# receivers = ['xxx@dadaodata.com', 'xxx@qq.com'] # 收件人地址或是地址列表,支持多个收件人,最多30个
# 构造邮件MIMEMultipart对象
msg = MIMEMultipart('mixed')
msg['Subject'] = Header('自动化测试报告' + time.strftime("%Y-%m-%d"), 'utf-8').encode()#自定义邮件主题
msg['From'] = '%s <%s>' % (username, username)#邮件发送者
msg['To'] = ";".join(receiver)#邮件接受者
msg['Message-id'] = email.utils.make_msgid()
msg['Date'] = email.utils.formatdate()
# 构造文字内容
text_plain = MIMEText('附件为接口自动化测试报告,请查收!', 'plain', 'utf-8')#邮件内容
msg.attach(text_plain)
#构造附件
test_report = r'F:\PythonAutomation\Python_PyCharm\TestReport' #存放文件的目录
lists = os.listdir(test_report) #列出目录的下所有文件保存到lists
lists.sort(key=lambda fn:os.path.getmtime(test_report + "\\" + fn)) #按时间排序
file_new = os.path.join(test_report,lists[-1]) #获取最新的文件保存到file_new
sendfile = open(file_new,'rb').read()
text_att = MIMEText(sendfile, 'base64', 'utf-8')
text_att["Content-Type"] = 'application/octet-stream'
text_att["Content-Disposition"] = 'attachment; filename="report.html"'#重新命名附件
msg.attach(text_att)
# 发送邮件
try:
  # client = smtplib.SMTP()
  # client.connect(smtpserver, 25) #SMTP普通端口为25
  client = smtplib.SMTP_SSL() #python 2.7以上版本,若需要可使用SSL
  client.connect(smtpserver, 465) #SSL端口465
  # client.set_debuglevel(1) #用set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息
  client.login(username, password)
  client.sendmail(username, receiver, msg.as_string())
  client.quit()
  print('邮件发送成功')
except smtplib.SMTPConnectError as e:
  print('邮件发送失败,连接失败:', e.smtp_code, e.smtp_error)
except smtplib.SMTPAuthenticationError as e:
  print('邮件发送失败,认证错误:', e.smtp_code, e.smtp_error)
except smtplib.SMTPSenderRefused as e:
  print('邮件发送失败,发件人被拒绝:', e.smtp_code, e.smtp_error)
except smtplib.SMTPRecipientsRefused as e:
  print('邮件发送失败,收件人被拒绝:', e.args, e.recipients)
except smtplib.SMTPDataError as e:
  print('邮件发送失败,数据接收拒绝:', e.smtp_code, e.smtp_error)
except smtplib.SMTPException as e:
  print('邮件发送失败: ', str(e))
except Exception as e:
  print('邮件发送失败: ', str(e))

执行结果如下:

使用python将最新的测试报告以附件的形式发到指定邮箱

总结

以上所述是小编给大家介绍的使用python将最新的测试报告以附件的形式发到指定邮箱,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python内置数据类型详解
Aug 18 Python
Python实现简单的可逆加密程序实例
Mar 05 Python
go语言计算两个时间的时间差方法
Mar 13 Python
Python的Django框架中的表单处理示例
Jul 17 Python
浅谈python 线程池threadpool之实现
Nov 17 Python
python定向爬取淘宝商品价格
Feb 27 Python
Python get获取页面cookie代码实例
Sep 12 Python
Python使用requests提交HTTP表单的方法
Dec 26 Python
Python startswith()和endswith() 方法原理解析
Apr 28 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 Python
python3中apply函数和lambda函数的使用详解
Feb 28 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
Sep 20 #Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
Sep 20 #Python
Python 类属性与实例属性,类对象与实例对象用法分析
Sep 20 #Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 #Python
使用Python给头像戴上圣诞帽的图像操作过程解析
Sep 20 #Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
Sep 20 #Python
Python 50行爬虫抓取并处理图灵书目过程详解
Sep 20 #Python
You might like
php设计模式小结
2013/02/15 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
[47:04]LGD vs infamous Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
Python shelve模块实现解析
2019/08/28 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
python可视化text()函数使用详解
2020/02/11 Python
英国最大的奢侈品零售网络商城:Flannels
2016/09/16 全球购物
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
开学季活动策划方案
2014/02/28 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
财产公证书样本
2014/04/04 职场文书
简单租房协议书
2014/04/09 职场文书
软件项目开发计划书
2014/05/01 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python
利用Pycharm连接服务器的全过程记录
2021/07/01 Python
Python代码实现双链表
2022/05/25 Python