class Sendmail: def __init__(self, runningtime): self.user_log = UserLog().get_log() self.read_ini = ReadIni(node='email') self.run_time = runningtime def send_mail(self): sender = self.read_ini.get_value('sender') passwd = self.read_ini.get_value('passwd') receiver = self.read_ini.get_value('receivers') mail_host = self.read_ini.get_value('mail_host') print(sender, passwd, receiver, mail_host) tm = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) msg = MIMEMultipart() msg['Subject'] = Header( self.read_ini.get_value('header') + tm, 'utf-8') msg['From'] = sender msg['To'] = receiver #发送邮件正文 msg.attach( MIMEText( self.read_ini.get_value('content') + str(self.run_time), 'plain', 'utf-8')) #构造附件 lists = [] print(self.read_ini.get_value('path')) for root, dirs, files in os.walk(self.read_ini.get_value('path')): for file in files: if file.endswith(".html"): lists.append(os.path.join(root, file)) lists.sort(key=lambda f: os.stat(f).st_mtime) print(lists) lastmodified = lists[-1] att = MIMEText(open(lastmodified, 'rb').read(), 'base64', 'utf-8') att['Content-Type'] = 'application/octet-stream' att['Content-Disposition'] = 'attachment;filename=' + self.read_ini.get_value( 'filename') msg.attach(att) #发送 try: smtpObj = smtplib.SMTP() smtpObj.connect(mail_host, 25) smtpObj.login(sender, passwd) smtpObj.sendmail(sender, receiver, msg.as_string()) except Exception as e: print(e) print('发送失败') self.user_log.warn("邮件发送失败:" + tm) else: print('发送成功') self.user_log.info('邮件发送成功') finally: smtpObj.close()
read_ini = ReadIni() report_path = setting.TEST_REPORT loger = UserLog().get_logger() username = read_ini.get_config_value('EMAIL','username') #用户名 passwd = read_ini.get_config_value('EMAIL','passwd') #授权码 on_off = read_ini.get_config_value('EMAIL','on_off') #是否发送邮件 recv = read_ini.get_config_value('EMAIL','recv') #接收人 cc = read_ini.get_config_value('EMAIL','cc') #抄送人 title = read_ini.get_config_value('EMAIL','title') #邮件标题 if len(recv) > 0: recv = recv.split(',') else: print("收件人为空,请进行配置") loger.warn("收件人为空,请进行配置") class AllTest(): def __init__(self): global resultPath,new_file resultPath = report_path +'/'+GetTime().get_time()+'_result.html' self.caseListFile = setting.CASELIST_DIR self.caseFile = setting.TESTCASE_DIR self.caseList = [] def set_case_list(self): """ 读取caselist.txt文件中的用例名称。并添加到caselist元素组 :return: