具体代码如下所示:

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 ' % (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将最新的测试报告以附件的形式发到指定邮箱...相关推荐

  1. python如果选择不在列表里_使用python中的in ,not in来检查元素是不是在列表中的方法...

    使用python中的in ,not in来检查元素是不是在列表中的方法 更新时间:2018年07月06日 15:01:34 作者:mengtianwxs 今天小编就为大家分享一篇使用python中的i ...

  2. python选择文件夹,并自动发送这个文件夹下的所有文件(以附件的形式)至指定邮箱(通过163邮箱)

    工作中需要将自动生成的表格发送给办公邮箱继续处理,结合遍历文件夹和自动发邮件,做出了可以选择文件夹,并自动发送这个文件夹下的所有文件(以附件的形式)至指定邮箱 import smtplib from ...

  3. python2发送http不编码_[转]Python 2.x中常见字符编码和解码方面的错误及其解决办法...

    Python 2.x中的字符编码,设计的的确不好,导致初学者,甚至是即使用Python很长时间的人,都会经常遇到字符编解码方面的错误. 下面就把一些常见情,尽量的都整理出来,并给出相应的解决办法. 看 ...

  4. python发行版是什么意思_致 Python 初学者

    当下是一个喧嚣.浮躁的时代.我们总是被生活中大量涌现的热点所吸引,几乎没有深度阅读和思考的时间和机会.我始终认为,学习是需要沉下心来慢慢钻研的,是长期的:同时,学习不应该被赋予太多的功利色彩.一个Py ...

  5. 用python爬取qq空间内容_用python爬取QQ空间

    原博文 2016-11-18 17:19 − 好久没写博文了,最近捣鼓了一下python,好像有点上瘾了,感觉python比js厉害好多,但是接触不久,只看了<[大家网]Python基础教程(第 ...

  6. python分析股票数据的项目_用Python分析股市指数

    專 欄 ❈本文作者:王勇,目前感兴趣项目商业分析.Python.机器学习.Kaggle.17年项目管理,通信业干了11年项目经理管合同交付,制造业干了6年项目管理:PMO,变革,生产转移,清算和资产处 ...

  7. 一个完整的python文件即是一个模块_用python玩转数据|基本语法

    比较运算符 >>>3<4<7 True >>>3<4<1 False >>> 打开文件 >>> f=op ...

  8. python 定义字典键为变量_在python字典中使用变量作为键名

    我今天来是因为我有同样的问题.我必须说,我对这些答案很失望!我同意你的观点,这种冗余应该有一个惯用的解决方案.在这种情况下,JavaScript似乎比Python更明智.所以我想增加两个建议. 首先, ...

  9. python处理视频动漫化_用Python实现抖音上的“人像动漫化”特效,原来这么简单...

    原标题:用Python实现抖音上的"人像动漫化"特效,原来这么简单 作者 | 黄伟呢 来源 | 数据分析与统计学之美 前几天,女友拉着我和她玩儿抖音,就是这个 人像动漫化的操作,顿 ...

最新文章

  1. Coolite 中GridView点击行中的按钮时跳转至不同的页面
  2. 设置user-agent骗过服务端安全检查
  3. C++ 退出双层for循环,解决 break、return、continue无法实现问题
  4. 首届剑桥国际青年学术论坛开幕 第四范式携手DeepMind、华为共话AI技术革新
  5. 批处理延时启动的几个方法
  6. Window open()使用方法
  7. 【Pytorch神经网络实战案例】10 搭建深度卷积神经网络
  8. 结构光双目视觉测距原理
  9. oracle 改变受限模式,oracle之受限模式修改
  10. 苹果架构调整:AI、机器学习和Siri合并,由前谷歌AI负责人领导
  11. python下载步骤-python3.8下载及安装步骤详解
  12. Atitit  undac网络设备管理法案 (路由器 交换机等)    法案编号USRr101510
  13. Atitit vod ver 12 new feature v12 pb2 影吧 视频 电影 点播 播放系统v12新特性
  14. Pandas08--文本数据
  15. Java 反射到底慢在哪?
  16. 经典中的经典,古龙名著《陆小凤》决战紫禁之巅--叶西大战原文
  17. 谷歌云端硬盘快速下载方法_如何快速搜索Google云端硬盘
  18. 如何检查系统SMTP的ip地址是否被检测网站列入国际黑名单组织
  19. freemarker生成word不显示图片
  20. PHP 7.0+新特性

热门文章

  1. mysql 信号_MySQL
  2. 没有Dubbo Admin,怎么查看zookeeper中注册的dubbo服务?
  3. Spark排错与优化
  4. php用空格分隔的字符串对比,探讨各种PHP字符串函数的总结分析
  5. python绘图颜色深浅代表数值_画图理解Python的深浅拷贝
  6. html调用js函数_使用Require.js实现模块化开发
  7. 5v继电器模块实物接线_电气工程师都收藏的西门子S71200PLC接线图设计大全
  8. 实体 联系 模型mysql_数据库实体联系模型与关系模型
  9. while(0)循环还执行吗_for循环
  10. java编程编一个小系统_如何编写一个java学生信息管理系统?