python3 mail to send a test report

Send a test report by mail

Import smtplib
 from email.mime.text Import MimeText 


class the SendEmail:
     "" " mail Send report " "" 
    Global Send_user
     Global EMAIL_HOST
     Global password 
    Send_user = " [email protected] " 
    EMAIL_HOST = " smtp.163.com " 
    password = ' XXXXXX ' 

    DEF send_mail (Self, user_list, Sub, Content):
         "" " 
        send a message 
        : param user_list: list of recipients 
        :param sub: Theme 
        :param content: content
        :return:
        """
        user = "[email protected]" + "<" + send_user + ">"
        message = MIMEText(content, _subtype="plain", _charset="utf-8")
        message['Subject'] = sub
        message['From'] = user
        message['To'] = ";".join(user_list)
        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 = [ ' [email protected] ' ] 

        Sub = ' interface to automatic test report ' 
        Content = F " the interface test cases with a total run: {count_num}, the number of through: {pass_num}, the number of failures is: {fail_num}, the pass rate: pass_result {} " 
        self.send_mail (user_list, Sub , Content) 


IF  the __name__ == ' __main__ ' : 
    Send = the SendEmail () 
    send.send_main ([1,2,3,4],[6,2])

 

Guess you like

Origin www.cnblogs.com/CesareZhang/p/11407416.html