使用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中LEGB和闭包及装饰器
Aug 03 Python
利用 python 对目录下的文件进行过滤删除
Dec 27 Python
python3实现公众号每日定时发送日报和图片
Feb 24 Python
Python格式化日期时间操作示例
Jun 28 Python
对python自动生成接口测试的示例讲解
Nov 30 Python
Python中字典与恒等运算符的用法分析
Aug 22 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 Python
python3实现简单飞机大战
Nov 29 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 Python
简单谈谈Python面向对象的相关知识
Jun 28 Python
Python四款GUI图形界面库介绍
Jun 05 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中实现进程间通讯
2006/10/09 PHP
WINXP下apache+php4+mysql
2006/11/25 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
介绍Python中的一些高级编程技巧
2015/04/02 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
经贸专业毕业生求职信
2014/03/23 职场文书
银行竞聘报告范文
2014/11/06 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
总经理司机岗位职责
2015/04/10 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript