Python添加附件到邮箱并通过邮件向多个账号发送测试报告

邮件发送测试报告,并在报告中添加附件

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText


class SendEmail:
    """邮件方式发送报告"""
    global send_user
    global email_host
    global password
    send_user = "AAAAA@163.com"
    email_host = "smtp.163.com"
    password = 'CCCC'

    def send_mail(self, user_list, sub, content):
        """
        发送邮件
        :param user_list: 收件人列表
        :param sub: 主题
        :param content: 内容
        :return:
        """
        user = "xxxxx@163.com" + "<" + send_user + ">"
        message = MIMEMultipart()
        message['Subject'] = sub
        message['From'] = user
        message['To'] = ",".join(user_list)
        body = MIMEText(content, _subtype="plain", _charset="utf-8")  # 邮件内容
        message.attach(body)
        # 添加附件
        att = MIMEText(open("../dataconfig/case1.xls", "rb").read(), "base64",
                       "utf-8")  # 打开附件地址
        att["Content-Type"] = "application/octet-stream"
        att["Content-Disposition"] = 'attachment; filename="case1.xls"'
        message.attach(att)
        server = smtplib.SMTP()
        server.connect(email_host)
        server.login(send_user, password)
        server.sendmail(user, user_list, message.as_string())
        server.close()

    def send_main(self, pass_list, fail_list):
        """
        发送报告
        :param pass_list:
        :param fail_list:
        :return:
        """
        pass_num = float(len(pass_list))
        fail_num = float(len(fail_list))
        count_num = pass_num + fail_num
        pass_result = "%.2f%%" % (pass_num / count_num * 100)
        fail_result = "%.2f%%" % (fail_num / count_num * 100)
        user_list = ['XXXX@dingtalk.com', 'XXX@dingtalk.com']
        
        sub = '接口自动化测试报告'
        content = f"此次接口测试一共运行用例为:{count_num},通过个数为:{pass_num},失败个数为:{fail_num},通过率为:{pass_result},报告详情请查看附件!"
        self.send_mail(user_list, sub, content)


if __name__ == '__main__':
    send = SendEmail()
    send.send_main([1, 2, 3, 4], [6, 2])
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CesareCheung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值