给多个人发邮件时,可以传入邮箱列表

把多个收件人用分号隔开

# -*- coding: utf-8 -*-# @Time : 2020/2/15 17:02# @File : send_mail_19.py# @Author: Hero Liuimport smtplibimport timefrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.application import MIMEApplication

# 邮件发送的用户名和密码 常识:第三方授权码_user = "1399630688@qq.com"_pwd = "ycsrylfcyrxhhaeh"  # 这是授权码

now = time.strftime("%Y-%m-%d_%H_%M_%S")  # 获取时间戳

class SendEmail:    def send_email(self, email_to, filepath):        # email_to收件人        # filepath 准备发送的附件的地址        # Multipart分多个部分        msg = MIMEMultipart()        msg["Subject"] = now + "lhui的测试报告"        msg["From"] = _user        # msg["To"] = email_to        # 表示如果有多个收件人时,用分号分隔,用分号的原因是实际手动发邮件选择多个收件人时,也是分号分隔的        msg["To"] = ";".join(email_to)

        # 这是正文部分        part = MIMEText("这是自动化测试报告结果,请查收!")        msg.attach(part)

        # 这是附件部分,上传一个附件        # 这里必须是上传的文件,不可以是文件夹,需是完整的路径        part = MIMEApplication(open(filepath, "rb").read())        part.add_header("Content-Disposition", "attachment", filename=filepath)        msg.attach(part)        s = smtplib.SMTP_SSL("smtp.qq.com", timeout=30)  # 连接smtp邮件服务器,端口默认是25        s.login(_user, _pwd)  # 登录服务器        s.sendmail(_user, email_to, msg.as_string())  # 发送邮件

        # 上传多个附件的方法:把多个文件放在列表里,或者是获取文件夹下的文件列表        # path = ["1", "2", "3"]  # 假设这是文件列表        # for item in path:        #     part = MIMEApplication(open(item, "rb").read())        #     part.add_header("Content-Disposition", "attachment", filename=item)        #     msg.attach(part)        # s = smtplib.SMTP_SSL("smtp.qq.com", timeout=30)  # 连接smtp邮件服务器,端口默认是25        # s.login(_user, _pwd)  # 登录服务器        # s.sendmail(_user, email_to, msg.as_string())  # 发送邮件

if __name__ == "__main__":    email_to = ["lhclouds@163.com", "echat1@163.com"]    SendEmail().send_email(email_to, r"H:\python_lemon\day_20200208_mooc\data\result.html")

MOOC(7)- case依赖、读取json配置文件进行多个接口请求-发送测试报告邮件(19)的更多相关文章

  1. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-解决用例间依赖问题(17)

    最最重要,处理case依赖.字段依赖 # -*- coding: utf-8 -*- # @Time : 2020/2/13 21:14 # @File : data_depend_17.py # @ ...

  2. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-读取json封装成类(13)

    把读取json数据的函数封装成类 # -*- coding: utf-8 -*- # @Time : 2020/2/12 16:44 # @File : do_json_13.py # @Author ...

  3. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-openpyxl读取excel(14)

    从excel中读取数据 # -*- coding: utf-8 -*- # @Time : 2020/2/12 17:23 # @File : do_excel_openpyxl_14.py # @A ...

  4. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-执行测试用例(16)

    执行测试用例 # -*- coding: utf-8 -*- # @Time : 2020/2/12 22:56 # @File : run_test_16.py # @Author: Hero Li ...

  5. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-完整的测试类,含依赖测试(15)

    ddt.依赖测试.断言.测试数据写回 # -*- coding: utf-8 -*- # @Time : 2020/2/12 23:07 # @File : test_class_15.py # @A ...

  6. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-模拟接口响应数据(18)

    这里是把传入的请求数据作为响应值返回 # -*- coding: utf-8 -*- # @Time : 2020/2/15 9:47 # @File : do_mock_18.py # @Autho ...

  7. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-xlrd操作excel(11)

    xlrd操作excel # -*- coding: utf-8 -*- # @Time : 2020/2/12 9:14 # @File : do_excel_xlrd_11.py # @Author ...

  8. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-测试类中调用封装的mock(10)

    封装mock后,在单元测试中调用 # -*- coding: utf-8 -*- # @Time : 2020/2/11 8:35 # @File : test_class_10.py.py # @A ...

  9. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-封装mock(9)

    封装mock # -*- coding: utf-8 -*- # @Time : 2020/2/12 8:51 # @File : mock_demo_9.py # @Author: Hero Liu ...

随机推荐

  1. github 新建库,提交命令

    Command line instructions You can also upload existing files from your computer using the instructio ...

  2. RFC文档(http部分)

    Request For Comments(RFC),是一系列以编号排定的文件.文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件.目前RFC文件是由Internet Society(IS ...

  3. WebAPI异常捕捉处理,结合log4net日志(webapi框架)

    一:异常捕捉处理 首先,在我们需要区分controller的类型.是全部基层controller,还是Apicontroller.(当然一般API框架,用的都是Apicontroller).两者异常处 ...

  4. tensorflow输入数据处理

    A = tf.data.Dataset.from_generator(lambda: [['1,2'],['3,4,5']], tf.string, output_shapes=[None]) B = ...

  5. 02)MFC那几个基本文件介绍

    1)首先是  类目录: 2)在这个工程里面,你找不到主函数,没有主函数,你能看到的  仅仅有这五个类     但是  你还看不到  这五个类对应的对象子啊哪里 而且  我们在写MFC程序的时候  我压 ...

  6. c# 基础switct---case用于处理多条件的定值的判断

    题目:李四的年终工作评定,如果定为A级,则工资涨500元,如果定为B级,则工资涨200元,如果定为C级,工资不变,如果定为D级工资降200元,如果定为E级工资降500元. 设李四原工资为5000,请用 ...

  7. Promoter complex|转录组水平RNA的复杂度|

    生命组学 Promoter complex Tata box识别位点 Enhancer加入之后增强转录 不确定性与确定性之间的关系,原因中存在这不确定性,但是结果表达又是确定的.因为promoter的 ...

  8. Matlab高级教程_第一篇:Matlab基础知识提炼_05

    第九节:矩阵的操作 第十节:数组与矩阵 linspace函数

  9. gcc -c xx.c 选项讲解

    -c选项表示编译.汇编指定的源文件(也就是编译源文件),但是不进行链接.使用-c选项可以将每一个源文件编译成对应的目标文件. 目标文件是一种中间文件或者临时文件,如果不设置该选项,gcc 一般不会保留 ...

  10. 4.15 每周作业 —— 简单DP

    免费馅饼 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submissi ...