使用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 相关文章推荐
在 Django/Flask 开发服务器上使用 HTTPS
Jul 03 Python
Python中的条件判断语句与循环语句用法小结
Mar 21 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
Aug 07 Python
python使用webdriver爬取微信公众号
Aug 31 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
python之生产者消费者模型实现详解
Jul 27 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
Python用5行代码实现批量抠图的示例代码
Apr 14 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
python 统计代码耗时的几种方法分享
Apr 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截取发动短信内容的方法
2017/07/04 PHP
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
javascript闭包的理解
2015/04/01 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
2017/01/06 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
Python psutil模块简单使用实例
2015/04/28 Python
python妹子图简单爬虫实例
2015/07/07 Python
Python制作数据导入导出工具
2015/07/31 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
python版大富翁源代码分享
2018/11/19 Python
在keras里实现自定义上采样层
2020/06/28 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
四好少年事迹材料
2014/01/12 职场文书
小学班主任培训方案
2014/06/04 职场文书
六查六看自查报告
2014/10/14 职场文书
小学班主任事迹材料
2014/12/17 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
班主任工作总结范文
2015/08/13 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
mysql优化
2021/04/06 MySQL
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL