使用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 urllib、urllib2、httplib抓取网页代码实例
May 09 Python
Python读写配置文件的方法
Jun 03 Python
深入浅析Python字符编码
Nov 12 Python
Python3使用requests登录人人影视网站的方法
May 11 Python
python使用folium库绘制地图点击框
Sep 21 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
django 自定义过滤器的实现
Feb 26 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
Jul 11 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
python3处理word文档实例分析
Dec 01 Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 Python
python中Matplotlib绘制直线的实例代码
Jul 04 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
Using the TextRange Object
2006/10/14 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
jquery实现滑动特效代码
2015/08/10 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
jQuery实现分隔条左右拖动功能
2015/11/21 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
2016/11/01 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
js实现百度登录框鼠标拖拽效果
2017/03/07 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
vuex存储token示例
2019/11/11 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python利用ElementTree模块处理XML的方法详解
2017/08/31 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
python斐波那契数列的计算方法
2018/09/27 Python
对python判断是否回文数的实例详解
2019/02/08 Python
python3实现绘制二维点图
2019/12/04 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
教师岗位职责
2013/11/17 职场文书
外贸销售员求职的自我评价
2013/11/23 职场文书
小学教师听课制度
2014/02/01 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
应届生找工作求职信
2014/06/24 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python