使用python将最新的测试报告以附件的形式发到指定邮箱

 更新时间:2019年09月20日 11:16:46   作者:libre_yop  
这篇文章主要介绍了使用python将最新的测试报告以附件的形式发到指定邮箱,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

具体代码如下所示:

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将最新的测试报告以附件的形式发到指定邮箱,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • 解决Mac下首次安装pycharm无project interpreter的问题

    解决Mac下首次安装pycharm无project interpreter的问题

    今天小编就为大家分享一篇解决Mac下首次安装pycharm无project interpreter的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Pytorch中求模型准确率的两种方法小结

    Pytorch中求模型准确率的两种方法小结

    这篇文章主要介绍了Pytorch中求模型准确率的两种方法小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • 对python3 中方法各种参数和返回值详解

    对python3 中方法各种参数和返回值详解

    今天小编就为大家分享一篇对python3 中方法各种参数和返回值详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python实现批量下载图片的方法

    Python实现批量下载图片的方法

    这篇文章主要介绍了Python实现批量下载图片的方法,涉及Python基于urllib、urllib2及re等模块获取URL及正则匹配下载图片的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Python 十大特性

    Python 十大特性

    这篇文章主要给大家分享的是Python十大特性,Python 编程语言是世界上发展最快的编程语言。这一高级通用编程语言提供了广泛的实际应用,并且是一种非常流行的认证,下面我们就来看看它都有哪些特性吧
    2022-01-01
  • tensorflow使用range_input_producer多线程读取数据实例

    tensorflow使用range_input_producer多线程读取数据实例

    今天小编就为大家分享一篇tensorflow使用range_input_producer多线程读取数据实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python multiprocessing多进程原理与应用示例

    Python multiprocessing多进程原理与应用示例

    这篇文章主要介绍了Python multiprocessing多进程原理与应用,结合实例形式详细分析了基于multiprocessing包的多进程概念、原理及相关使用操作技巧,需要的朋友可以参考下
    2019-02-02
  • python文件夹分区的实现方法实例

    python文件夹分区的实现方法实例

    这篇文章主要给大家介绍了关于python文件夹分区的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python彩色化Linux的命令行终端界面的代码实例分享

    Python彩色化Linux的命令行终端界面的代码实例分享

    美化Linux的terminal终端显示的方法多种多样,这里我们给出一个利用Python彩色化Linux的命令行终端界面的代码实例分享,包括一个Linux下简便执行Python程序的方法,需要的朋友可以参考下
    2016-07-07
  • 详解django中自定义标签和过滤器

    详解django中自定义标签和过滤器

    本篇文章主要介绍了django中自定义标签和过滤器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07

最新评论