使用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错误和解决方法汇总整理
Jun 03 Python
python提取字典key列表的方法
Jul 11 Python
替换python字典中的key值方法
Jul 06 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
简单了解python的内存管理机制
Jul 08 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
Dec 12 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
Python求两个字符串最长公共子序列代码实例
Mar 05 Python
python编程的核心知识点总结
Feb 08 Python
python爬取2021猫眼票房字体加密实例
Feb 19 Python
Python的Tqdm模块实现进度条配置
Feb 24 Python
使用pycharm运行flask应用程序的详细教程
Jun 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无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
php实现的ping端口函数实例
2014/11/12 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
vue如何截取字符串
2019/05/06 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
js实现简单点赞操作
2020/03/17 Javascript
跟老齐学Python之Python文档
2014/10/10 Python
python读取二进制mnist实例详解
2017/05/31 Python
利用Django-environ如何区分不同环境
2018/08/26 Python
python 处理string到hex脚本的方法
2018/10/26 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
python and or用法详解
2019/06/26 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
应届毕业生的自我鉴定
2013/11/13 职场文书
关于做家务的心得体会
2016/01/23 职场文书
基于Python实现西西成语接龙小助手
2022/08/05 Golang