使用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 相关文章推荐
pygame学习笔记(5):游戏精灵
Apr 15 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
Python基于回溯法子集树模板解决找零问题示例
Sep 11 Python
详解Python3.6的py文件打包生成exe
Jul 13 Python
python Flask 装饰器顺序问题解决
Aug 08 Python
对IPython交互模式下的退出方法详解
Feb 16 Python
python实现简单聊天室功能 可以私聊
Jul 12 Python
python中的列表与元组的使用
Aug 08 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 Python
 python中的元类metaclass详情
May 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
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
PHP聊天室技术
2006/10/09 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
2014/08/06 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
JQuery循环滚动图片代码
2011/12/08 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
JavaScript日期工具类DateUtils定义与用法示例
2018/09/03 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
决策树的python实现方法
2014/11/18 Python
python集合类型用法分析
2015/04/08 Python
详解Django中的form库的使用
2015/07/18 Python
使用Python多线程爬虫爬取电影天堂资源
2016/09/23 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
在Pycharm中修改文件默认打开方式的方法
2019/01/17 Python
详解python深浅拷贝区别
2019/06/24 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
IE9下html5初试小刀
2010/09/21 HTML / CSS
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
2015财务年度工作总结范文
2015/05/04 职场文书
2016银行招聘自荐信
2016/01/28 职场文书