使用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下的常用下载安装工具pip的安装方法
Nov 13 Python
Python3实现Web网页图片下载
Jan 28 Python
Python 的类、继承和多态详解
Jul 16 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
python八皇后问题的解决方法
Sep 27 Python
Python的argparse库使用详解
Oct 09 Python
python命令行工具Click快速掌握
Jul 04 Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
Nov 29 Python
深入浅析Python 函数注解与匿名函数
Feb 24 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 26 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排序算法(冒泡排序,快速排序)
2012/10/09 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
PHP中16个高危函数整理
2019/09/19 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
js实现的网页颜色代码表全集
2007/07/17 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
在Python中使用SQLite的简单教程
2015/04/29 Python
Python continue继续循环用法总结
2018/06/10 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
python 简单的调用有道翻译
2020/11/25 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
生日邀请函范文
2014/01/13 职场文书
租房协议书范本
2014/04/09 职场文书
宣传标语大全
2014/07/01 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python