使用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 GAE、Django导出Excel的方法
Nov 24 Python
详细解析Python当中的数据类型和变量
Apr 25 Python
利用Python如何生成hash值示例详解
Dec 20 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
PYTHON基础-时间日期处理小结
May 05 Python
浅谈tensorflow之内存暴涨问题
Feb 05 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
python连接mongodb集群方法详解
Feb 13 Python
基于python实现可视化生成二维码工具
Jul 08 Python
如何从csv文件构建Tensorflow的数据集
Sep 21 Python
python 绘制场景热力图的示例
Sep 23 Python
Python datetime模块的使用示例
Feb 02 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发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
在vue中使用回调函数,this调用无效的解决
2020/08/11 Javascript
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
Python的多态性实例分析
2015/07/07 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
python命令行参数用法实例分析
2019/06/25 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
市政施工员自我鉴定
2014/01/15 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
承诺保证书格式
2015/02/28 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
职位证明模板
2015/06/23 职场文书
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js