使用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中的yield使用方法
Feb 11 Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
Apr 08 Python
Python制作简单的网页爬虫
Nov 22 Python
详解python实现线程安全的单例模式
Mar 05 Python
python微信公众号开发简单流程
Mar 23 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
详解Python字符串切片
May 20 Python
使用Python计算玩彩票赢钱概率
Jun 26 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
在django中,关于session的通用设置方法
Aug 06 Python
python flask中动态URL规则详解
Nov 22 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
一个显示天气预报的程序
2006/10/09 PHP
PHP 操作文件的一些FAQ总结
2009/02/12 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
jQuery 联动日历实现代码
2012/05/31 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
axios异步提交表单数据的几种方法
2019/08/11 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
详解Python里使用正则表达式的ASCII模式
2017/11/02 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
python实现ip代理池功能示例
2019/07/05 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
小石潭记导游词
2015/02/03 职场文书
面试通知邮件
2015/04/20 职场文书
判断Python中的Nonetype类型
2021/05/25 Python
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android