使用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中的数字类型及基本的数学计算
Mar 11 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
python中logging模块的一些简单用法的使用
Feb 22 Python
基于h5py的使用及数据封装代码
Dec 26 Python
Python利用Scrapy框架爬取豆瓣电影示例
Jan 17 Python
解决pycharm不能自动补全第三方库的函数和属性问题
Mar 12 Python
Python web如何在IIS发布应用过程解析
May 27 Python
Python matplotlib可视化实例解析
Jun 01 Python
python如何快速生成时间戳
Jul 21 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
python读取excel数据绘制简单曲线图的完整步骤记录
Oct 30 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/06/06 PHP
使用php清除bom示例
2014/03/03 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
PHP7 标准库修改
2021/03/09 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
javascript 函数使用说明
2010/04/07 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
Nodejs实现WebSocket代码实例
2020/05/19 NodeJs
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
python模拟Django框架实例
2016/05/17 Python
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
对python中return和print的一些理解
2017/08/18 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
python中partial()基础用法说明
2018/12/30 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
联想德国官网:Lenovo Germany
2018/07/04 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
网络程序员自荐信
2014/01/25 职场文书
品德评语大全
2014/05/05 职场文书
实验室标语
2014/06/21 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
学校学期工作总结
2015/08/13 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android