使用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根据unicode判断语言类型实例代码
Jan 17 Python
django数据库migrate失败的解决方法解析
Feb 08 Python
python 读取摄像头数据并保存的实例
Aug 03 Python
Python中关键字global和nonlocal的区别详解
Sep 03 Python
关于Flask项目无法使用公网IP访问的解决方式
Nov 19 Python
python 多维高斯分布数据生成方式
Dec 09 Python
matlab中imadjust函数的作用及应用举例
Feb 27 Python
python定时截屏实现
Nov 02 Python
Python将QQ聊天记录生成词云的示例代码
Feb 10 Python
详解Python中openpyxl模块基本用法
Feb 23 Python
python实现会员信息管理系统(List)
Mar 18 Python
Python可视化神器pyecharts之绘制地理图表练习
Jul 07 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 验证图片生成函数
2009/05/21 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
Laravel使用支付宝进行支付的示例代码
2017/08/16 PHP
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
matplotlib设置legend图例代码示例
2017/12/19 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
python 中 .py文件 转 .pyd文件的操作
2021/03/04 Python
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
2014社区三八妇女节活动总结
2014/03/01 职场文书
工程项目建议书范文
2014/03/12 职场文书
主题党日活动总结
2014/07/08 职场文书
股东授权委托书范文
2014/09/13 职场文书
2015年安全月活动总结
2015/03/26 职场文书
运动会新闻报道稿
2015/07/22 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
微信小程序实现轮播图指示器
2022/06/25 Javascript