Heim  >  Artikel  >  php教程  >  PHP后台隔5分钟发送email邮件

PHP后台隔5分钟发送email邮件

WBOY
WBOYOriginal
2016-06-21 08:49:221166Durchsuche

 

1.5分钟发送email,并且邮件内容为由html模板生成的table
while(1)
  {
    //ten minute
    var_dump("check task, please don't close");
    
    //send email
    processDBData($db);
    
    //process inventory state
    processInventoryState($db,$tasks);
    
    sleep(5*60);
  }

//read table data from database
  function processDBData($db)
  {
    $testplan_id = '';
    $temp = '';
    $TotalCaseNum = 0;
    $projectName = '';
     
    //check finished testplan table->tasks
    $sql="SELECT TK.id,TK.send_email,TK.user_id,TK.build_id,TK.case_ids,TK.testplan_id,TK.flag,TK.total
    from tasks AS TK WHERE current=total and flag='2' and ISNULL(send_email)";
    $controlInfor = $db->get_recordset($sql);
    
    if(null== $controlInfor)
    {
      return;
    }

    
    foreach($controlInfor as $key =>$item)
    {  
      //open model html
      $fModel = fopen("report.model","r");
      if(null == $fModel)
      {
        var_dump("no model");
      }
      
      $Modelhandle = fread($fModel,filesize("report.model"));
    
      $test_cases = $item['case_ids'];
      
      //get total Num
      $TotalCaseNum = (int)$item['total'];

      //testplan table->testplan
      //$sql = "SELECT notes,testproject_id FROM testplans WHERE id='{$item['testplan_id']}'";
      $sql = "SELECT name from nodes_hierarchy WHERE id='{$item['testplan_id']}'";
      $result = $db->get_recordset($sql);
      $temp = str_replace("MODEL_TESLPLANE",$result[0]['name'],$Modelhandle);
      $Modelhandle = $temp;
      
      //product table->testprojects
      $sql = "SELECT notes FROM testprojects WHERE id='{$result[0]['testproject_id']}'";
      var_dump($sql);
      $result = $db->get_recordset($sql);
      
      $temp = str_replace("MODEL_PRODUCTNAME",$result[0]['notes'],$Modelhandle);
      $Modelhandle = $temp;
      
      //build table->builds
      $sql = "SELECT DB.name FROM builds AS DB WHERE testplan_id='{$item['testplan_id']}' and id='{$item['build_id']}'";
      $result = $db->get_recordset($sql);
      var_dump($sql);
      $temp = str_replace("MODEL_BUILD",$result[0]['name'],$Modelhandle);
      $projectName = $result[0]['name'];
      $Modelhandle = $temp;
      
      //test result table->executions
      $cases = explode(',',$test_cases);
      $case_infor = get_ts_name_details($db,$cases);
      
      //var_dump(sizeof($case_infor));
      
      //process html testcase content   nl2br()
      //after the content added(table,body,html end flag)
      var_dump($case_infor);
      
      $BeforSuiteNam = "";
      $successNum = 0;
      $TESTNUM = 0;
      
      //var_dump($case_infor);
      //var_dump($case_infor);
      foreach($case_infor as $k=>$case)
      {
        $Modelhandle = $temp;
        
        if($case['tsuite_name'] != $BeforSuiteNam)
        {
          $Modelhandle = $temp . "

{$case['tsuite_name']}";
          $temp = $Modelhandle;
        }


        //cese name + importance + result
        //var_dump(Integer.parseInt('c'));
        //get success number
        $sql="SELECT TK.id,TK.send_email,TK.user_id,TK.case_ids,TK.testplan_id,TK.flag,TK.total,TK.user_id from tasks AS TK WHERE current=total and flag='2'";
        
        $controlInfor = $db->get_recordset($sql);
        
        //set pass/fail information  
        //var_dump($case['status']);
        $pass = 'p';
        $finish ='c';
        
        if(($case['status'])== $finish)//$TotalCaseNum
        {
          //set case information
          $Modelhandle = $temp. "
            
            {$case['name']}
            {$case['importance']}
            FINISH
          ";
        }
        else if($case['status'] == $pass)//$TotalCaseNum
        {
          $successNum++;
                    //set case information
          $Modelhandle = $temp. "
            
            {$case['name']}
            {$case['importance']}
            PASS
          ";
        }
        else
        {
          $Modelhandle = $temp. "
            
            {$case['name']}
            {$case['importance']}
            FAIL
            ";
        }
        
        $temp = $Modelhandle;
        $BeforSuiteNam = $case['tsuite_name'];
      }
      
      //set success number
      //var_dump($TotalCaseNum);
      //$TotalCaseNum
      $temp = str_replace("MODEL_SUCCESS","{$successNum}/{$TotalCaseNum}",$Modelhandle);
      $Modelhandle = $temp;
      
      $temp = str_replace("MODEL_FAIL",($TotalCaseNum-$successNum)."/".$TotalCaseNum,$Modelhandle);
      $Modelhandle = $temp;
      
      //added html end sign
      $Modelhandle = $temp . "
               
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:phpcms V9实现QQ登陆OAuth2.0Nächster Artikel:PHP开发Android应用程序