Beispiel #1
0
def send_email_with_attachment(content, header, file_path,rev_addr_lst,
                               host= Config.DefaultConfig().Email.Domain,
                               username= Config.DefaultConfig().Email.Sender,
                               password= Config.DefaultConfig().Email.Password, 
                               sender_addr= Config.DefaultConfig().Email.Sender ) :
    """
    @author: eason.sun
    @content:邮件发送的主要内容
    @header:邮件发送的头部
    @file_path:附件在本地的路径 
    @username:邮件发件人账号
    @password:邮件发件人账号密码
    @sender_addr:邮件发送时,发件人显示地址
    @rev_addr_lst:收件人列表  
    @return None
    @summary: 用于发送邮件内容,内容只带有一个附件
    """
    smtp = smtplib.SMTP()
    smtp.connect(host)
    smtp.login(username, password)
    
    main_msg = email.MIMEMultipart.MIMEMultipart()
    main_msg["Subject"] = Header(header, "utf-8")
    
    text_msg = email.MIMEText.MIMEText(content, _subtype = "html", _charset = "utf-8")
    main_msg.attach(text_msg)
    
    file_attach = MIMEApplication(open(file_path,'rb').read())
    file_attach.add_header('Content-Disposition', 'attachment', filename=os.path.basename(file_path))
    main_msg.attach(file_attach)
    
    try:
        smtp.sendmail(sender_addr, rev_addr_lst, main_msg.as_string())
    finally:
        smtp.quit()
Beispiel #2
0
def send_email(content, header,  rev_addr_lst,
                            host= Config.DefaultConfig().Email.Domain,
                            username= Config.DefaultConfig().Email.Sender,
                            password= Config.DefaultConfig().Email.Password, 
                            sender_addr= Config.DefaultConfig().Email.Sender ):
    """
    @author: eason.sun
    @content:邮件发送的主要内容
    @header:邮件发送的头部
    @username:邮件发件人账号
    @password:邮件发件人账号密码
    @sender_addr:邮件发送时,发件人显示地址
    @rev_addr_lst:收件人列表    
    
    @return: None
    
    @summary: 用于发送邮件内容,内容仅限文本内容
    """
    send_msg = MIMEText(content, _subtype = "html", _charset = "utf-8")
    send_msg["Subject"] = Header(header, "utf-8")
    smtp = smtplib.SMTP()
    smtp.connect(host)
    smtp.login(username, password)
    smtp.sendmail(sender_addr, rev_addr_lst, send_msg.as_string())
    smtp.quit()
Beispiel #3
0
def nose_run(parser):
    Config.nose_set("verbosity", parser.verbosity)
    Config.nose_set("logging-config", Dir.log_config_path())
    # 通过关键字筛选出来的用例列表
    tests = FileHelper.tests_filter_from_dir(Dir.testcases_root_dir(),
                                             parser.select, parser.priority)
    Config.nose_set("where", Dir.testcases_root_dir())
    if len(tests):
        for i in xrange(parser.loop):
            # 生成的报表每个名称都不一样,以时间为区分
            nosexml = Dir.nose_result_path(
            ) + "wy_autotest_" + Datetime.now_str() + ".xml"
            Config.nose_set("tests", ",".join(tests))
            Config.nose_set("xunit-file", nosexml)
            Logger.info("正在第{0}/{1}次进行Nose测试".format(i + 1, parser.loop))
            Logger.info("执行Nose命令:{0}".format(Config.nose_cmd()))
            # 切换当前路径为工程根目录
            os.chdir(Dir.project_root_dir())
            os.system("nosetests")
            #发送邮件
            result_summary = Result.test_result_summary(nosexml)
            result_detail = Result.test_result_detail(nosexml)
            rev_addr_lst = [
                "*****@*****.**", "*****@*****.**",
                "*****@*****.**"
            ]
            Mail.send_email_with_attachment(
                result_summary + result_detail,
                Config.DefaultConfig().Email.Subject, nosexml, rev_addr_lst)
            Logger.info("完成第{0}/{1}次进行Nose测试".format(i + 1, parser.loop))
    else:
        Logger.info("抱歉,没有符合条件的执行测试用例!")
Beispiel #4
0
def send_email_with_attachments(content, header, file_paths,
                                host= Config.DefaultConfig().Email.Domain,
                                username= Config.DefaultConfig().Email.Sender,
                                password= Config.DefaultConfig().Email.Password, 
                                sender_addr= Config.DefaultConfig().Email.Sender,
                                rev_addr_lst=  Config.DefaultConfig().Email.Receiver ) : 
    """
    @author: eason.sun
    @content:邮件发送的主要内容
    @header:邮件发送的头部
    @file_paths:附件列表在本地的路径
    @username:邮件发件人账号
    @password:邮件发件人账号密码
    @sender_addr:邮件发送时,发件人显示地址
    @rev_addr_lst:收件人列表
    
    @return: None
    
    @summary: 用于发送邮件内容,内容带有多个附件
    """
    msg = MIMEMultipart()
    msg["Subject"] = Header(header, "utf-8")
    part = MIMEText(content, _subtype = "html", _charset = "utf-8")
    msg.attach(part)
    # 添加附件
    for file_path in file_paths:
        part = MIMEApplication(open(file_path,'rb').read())
        part["Content-Type"] = 'application/octet-stream;name=”%s”' % Header(os.path.basename(file_path), 'utf-8')
        part["Content-Disposition"] = 'attachment;filename= %s' % Header(os.path.basename(file_path), 'utf-8')
        msg.attach(part)
    try:
        s = smtplib.SMTP(host)
        s.login(username, password)
        s.sendmail(sender_addr, rev_addr_lst, msg.as_string())
    finally:
        s.close()