使用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之类的细节
Oct 13 Python
Django实现图片文字同时提交的方法
May 26 Python
Python实现的文本简单可逆加密算法示例
May 18 Python
PyTorch线性回归和逻辑回归实战示例
May 22 Python
python发送邮件脚本
May 22 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
Jun 21 Python
windows下python安装小白入门教程
Sep 18 Python
使用python opencv对目录下图片进行去重的方法
Jan 12 Python
python搜索包的路径的实现方法
Jul 19 Python
更新升级python和pip版本后不生效的问题解决
Apr 17 Python
python实现批处理文件
Jul 28 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 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 Token(令牌)设计
2008/03/15 PHP
PHP define函数的使用说明
2008/08/27 PHP
PHP iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
PHP children()函数讲解
2019/02/03 PHP
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
Python读写Excel文件方法介绍
2014/11/22 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
全球最大的房车租赁市场:Outdoorsy
2018/09/19 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
打架检讨书50字
2014/01/11 职场文书
违反课堂纪律检讨书
2014/01/19 职场文书
担保书格式及范文
2014/04/01 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
竞选稿之小学班干部
2019/10/31 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis