'''
Code description:send email
Create time:
Developer:
'''
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import os
from retail.config import conf
from retail.test_case.models.log import Logger
log = Logger(__name__)
# 邮件发送接口
class SendMail(object):

 ''' 邮件配置信息 ''' def __init__(self,              receiver,              subject='Retail 零碎测试报告',              server='smtp.qq.com',              fromuser='281754043@qq.com',              frompassword='gifhhsbgqyovbhhc',              sender='281754043@qq.com'):     """     :param receiver:     :param subject:     :param server:     :param fromuser:     :param frompassword:     :param sender:     """     self._server = server     self._fromuser = fromuser     self._frompassword = frompassword     self._sender = sender     self._receiver = receiver     self._subject = subject def sendEmail(self, fileName):     """     :param filename:     :return:     """     #   关上报告文件读取文件内容     try:         f = open(os.path.join(conf.reportPath, fileName), 'rb')         fileMsg = f.read()     except Exception:         log.logger.exception('open or read file [%s] failed,No such file or directory: %s' %(fileName, conf.reportPath))         log.logger.info('open and read file [%s] successed!' %fileName)     else:         f.close()         #   邮件主题         subject = 'Python test report' #         #   邮件设置         msg = MIMEText(fileMsg, 'html', 'utf-8')         msg['subject'] = Header(subject, 'utf-8')         msg['from'] = self._sender     #   连贯服务器,[白银](https://www.gendan5.com/nmetal/silver.html)登录服务器,发送邮件         try:             smtp = smtplib.SMTP()             smtp.connect(self._server)             smtp.login(self._fromuser, self._frompassword)         except Exception:             log.logger.exception('connect [%s] server failed or username and password incorrect!' %smtp)         else:             log.logger.info('email server [%s] login success!' %smtp)             try:                 smtp.sendmail(self._sender, self._receiver, msg.as_string())             except Exception:                 log.logger.exception('send email failed!')             else:                 log.logger.info('send email successed!')

# 从文件中读取邮件接管人信息
def getReceiverInfo(fileName):

 ''' :param filename: 读取接管邮件人信息 :return: 接管邮件人信息 ''' try:     openFile = open(os.path.join(conf.dataPath, fileName)) except Exception:     log.logger.exception('open or read file [%s] failed,No such file or directory: %s' %(fileName, conf.dataPath)) else:     log.logger.info('open file [%s] successed!' %fileName)     for line in openFile:         msg = [i.strip() for i in line.split(',')]         log.logger.info('reading [%s] and got receiver value is [%s]' %(fileName, msg))         return msg

if name == '__main__':

 readMsg=getReceiverInfo('mail_receiver.txt') sendmail = SendMail(readMsg) sendmail.sendEmail('2021-04-21 17_44_04.html')