使用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的Django框架中的Context使用
Jul 15 Python
利用Python为iOS10生成图标和截屏
Sep 24 Python
python爬虫的工作原理
Mar 05 Python
matplotlib绘图实例演示标记路径
Jan 23 Python
Django使用Celery异步任务队列的使用
Mar 13 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
Pycharm更换python解释器的方法
Oct 29 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
python django中8000端口被占用的解决
Dec 17 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
python logging模块的使用
Sep 07 Python
Python写情书? 10行代码展示如何把情书写在她的照片里
Apr 21 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
Zend的MVC机制使用分析(一)
2013/05/02 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
OpenLayers3实现对地图的基本操作
2020/09/28 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
利用Vue实现简易播放器的完整代码
2020/12/30 Vue.js
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
python 获取et和excel的版本号
2009/04/09 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
python 基于wx实现音乐播放
2020/11/24 Python
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
护理专业自荐信范文
2014/02/26 职场文书
意向书范文
2014/03/31 职场文书
文艺演出策划方案
2014/06/07 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
Python实现仓库管理系统
2022/05/30 Python