python附件发送到邮箱里_使用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 ' % (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如果选择不在列表里_使用python中的in ,not in来检查元素是不是在列表中的方法...
使用python中的in ,not in来检查元素是不是在列表中的方法 更新时间:2018年07月06日 15:01:34 作者:mengtianwxs 今天小编就为大家分享一篇使用python中的i ...
- python选择文件夹,并自动发送这个文件夹下的所有文件(以附件的形式)至指定邮箱(通过163邮箱)
工作中需要将自动生成的表格发送给办公邮箱继续处理,结合遍历文件夹和自动发邮件,做出了可以选择文件夹,并自动发送这个文件夹下的所有文件(以附件的形式)至指定邮箱 import smtplib from ...
- python2发送http不编码_[转]Python 2.x中常见字符编码和解码方面的错误及其解决办法...
Python 2.x中的字符编码,设计的的确不好,导致初学者,甚至是即使用Python很长时间的人,都会经常遇到字符编解码方面的错误. 下面就把一些常见情,尽量的都整理出来,并给出相应的解决办法. 看 ...
- python发行版是什么意思_致 Python 初学者
当下是一个喧嚣.浮躁的时代.我们总是被生活中大量涌现的热点所吸引,几乎没有深度阅读和思考的时间和机会.我始终认为,学习是需要沉下心来慢慢钻研的,是长期的:同时,学习不应该被赋予太多的功利色彩.一个Py ...
- 用python爬取qq空间内容_用python爬取QQ空间
原博文 2016-11-18 17:19 − 好久没写博文了,最近捣鼓了一下python,好像有点上瘾了,感觉python比js厉害好多,但是接触不久,只看了<[大家网]Python基础教程(第 ...
- python分析股票数据的项目_用Python分析股市指数
專 欄 ❈本文作者:王勇,目前感兴趣项目商业分析.Python.机器学习.Kaggle.17年项目管理,通信业干了11年项目经理管合同交付,制造业干了6年项目管理:PMO,变革,生产转移,清算和资产处 ...
- 一个完整的python文件即是一个模块_用python玩转数据|基本语法
比较运算符 >>>3<4<7 True >>>3<4<1 False >>> 打开文件 >>> f=op ...
- python 定义字典键为变量_在python字典中使用变量作为键名
我今天来是因为我有同样的问题.我必须说,我对这些答案很失望!我同意你的观点,这种冗余应该有一个惯用的解决方案.在这种情况下,JavaScript似乎比Python更明智.所以我想增加两个建议. 首先, ...
- python处理视频动漫化_用Python实现抖音上的“人像动漫化”特效,原来这么简单...
原标题:用Python实现抖音上的"人像动漫化"特效,原来这么简单 作者 | 黄伟呢 来源 | 数据分析与统计学之美 前几天,女友拉着我和她玩儿抖音,就是这个 人像动漫化的操作,顿 ...
最新文章
- Coolite 中GridView点击行中的按钮时跳转至不同的页面
- 设置user-agent骗过服务端安全检查
- C++ 退出双层for循环,解决 break、return、continue无法实现问题
- 首届剑桥国际青年学术论坛开幕 第四范式携手DeepMind、华为共话AI技术革新
- 批处理延时启动的几个方法
- Window open()使用方法
- 【Pytorch神经网络实战案例】10 搭建深度卷积神经网络
- 结构光双目视觉测距原理
- oracle 改变受限模式,oracle之受限模式修改
- 苹果架构调整:AI、机器学习和Siri合并,由前谷歌AI负责人领导
- python下载步骤-python3.8下载及安装步骤详解
- Atitit undac网络设备管理法案 (路由器 交换机等) 法案编号USRr101510
- Atitit vod ver 12 new feature v12 pb2 影吧 视频 电影 点播 播放系统v12新特性
- Pandas08--文本数据
- Java 反射到底慢在哪?
- 经典中的经典,古龙名著《陆小凤》决战紫禁之巅--叶西大战原文
- 谷歌云端硬盘快速下载方法_如何快速搜索Google云端硬盘
- 如何检查系统SMTP的ip地址是否被检测网站列入国际黑名单组织
- freemarker生成word不显示图片
- PHP 7.0+新特性
热门文章
- mysql 信号_MySQL
- 没有Dubbo Admin,怎么查看zookeeper中注册的dubbo服务?
- Spark排错与优化
- php用空格分隔的字符串对比,探讨各种PHP字符串函数的总结分析
- python绘图颜色深浅代表数值_画图理解Python的深浅拷贝
- html调用js函数_使用Require.js实现模块化开发
- 5v继电器模块实物接线_电气工程师都收藏的西门子S71200PLC接线图设计大全
- 实体 联系 模型mysql_数据库实体联系模型与关系模型
- while(0)循环还执行吗_for循环
- java编程编一个小系统_如何编写一个java学生信息管理系统?