Ignore:
Timestamp:
07/11/12 12:46:17 (12 years ago)
Author:
airton
Message:

Ticket #2956 - Inconsistencia em filtros com criterio por assunto/contem frase

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/filters/interceptors/FilterMapping.php

    r6534 r6756  
    9494    { 
    9595                $require_fileinto = $require_flag = $require_reject = $require_vacation = $require_body = $require_imapflag = $vacation = $startswith = $endswith = false; 
    96  
    9796                $script_rules = $script_header = $script_criteria = $vacation_action = ""; 
    98  
    9997                $i = 0; 
    10098                 
     
    104102                                continue; 
    105103                                 
    106                         if(array_key_exists("block", $data)) { 
     104                        if(array_key_exists("block", $data))  
     105                        { 
    107106                                /* Usado na opção Bloquear usuário do ExpressoMail */ 
    108107                                if($data['block']) { 
     
    130129                        {                                        
    131130                                 
    132                                 switch($criteria[$j]['field']) { 
    133                                         case 'To':     
    134                                         case 'to':     
     131                                switch(strtoupper($criteria[$j]['field'])) { 
     132                                        case 'TO':     
    135133                                        case 'CC': 
    136                                         case 'Cc': 
    137134                                                $criteria[$j]['field'] = "[\"To\", \"TO\", \"Cc\", \"CC\"]";  
    138135                                                $script_criteria .= "address :"; 
    139136                                                break; 
    140                                         case 'from': 
     137                                        case 'FROM': 
    141138                                                $criteria[$j]['field'] = "\"" . $criteria[$j]['field'] . "\""; 
    142139                                                $script_criteria .= "address :"; 
    143140                                                break; 
    144                                         case 'size':     
     141                                        case 'SIZE':     
    145142                                                $criteria[$j]['field'] = ''; 
    146143                                                $script_criteria .= "size :"; 
    147144                                                break; 
    148                                         case 'subject': 
     145                                        case 'SUBJECT': 
    149146                                                $criteria[$j]['field'] = "\"" . $criteria[$j]['field'] . "\""; 
    150                                                 $criteria[$j]['value'] = "" . imap_8bit($criteria[$j]['value']) . "*\", \"" . base64_encode($criteria[$j]['value']) . ""; 
    151                                                 $criteria[$j]['operator'] = "^";  //temporary 
    152147                                                $script_criteria .= "header :"; 
    153                                                 break; 
    154                                         case 'body': 
     148                                                if($criteria[$j]['operator'] == "$") { 
     149                                                        $criteria[$j]['value'] = "" . imap_8bit($criteria[$j]['value']) . "\", \"*" . base64_encode($criteria[$j]['value']) . ""; 
     150                                                        break; 
     151                                                } 
     152                                                if($criteria[$j]['operator'] == "^") { 
     153                                                        $criteria[$j]['value'] = "" . imap_8bit($criteria[$j]['value']) . "*\", \"" . base64_encode($criteria[$j]['value']) . ""; 
     154                                                        break; 
     155                                                } 
     156                                                $criteria[$j]['value'] = "" . imap_8bit($criteria[$j]['value']) . "\", \"" . base64_encode($criteria[$j]['value']) . ""; 
     157                                                break; 
     158                                        case 'BODY': 
    155159                                                $criteria[$j]['field'] = ''; 
    156160                                                $script_criteria .= "body :"; 
    157161                                                $require_body = true; 
    158162                                                break; 
    159                                         case 'vacation': 
     163                                        case 'VACATION': 
    160164                                                continue; 
    161                                         case 'hasAttachment': 
     165                                        case 'HASATTACHMENT': 
    162166                                                $criteria[$j]['field'] = ''; 
    163167                                                $script_criteria .= "body :"; 
     
    221225                        } 
    222226                        $script_criteria = substr($script_criteria,0,-2); 
    223                         /* if ($vacation == false) */  
    224227                        $script_criteria .= ")";  
    225228 
    226                         //$script_action = " {\r\n "; 
    227                         /* Somente para controlar que o addFlag virá antes de qualquer ação. Modificar isso depois */ 
    228229                        $action_addFlag = ''; 
    229230                         
     
    291292 
    292293                if( $vacation_action ) 
    293                 { 
    294294                  $script_rules .= "vacation" . $vacation_action . "\r\n"; 
    295                 } 
    296295 
    297296                foreach ($rules as &$values) {                                           
     
    300299                        $values['applyMessages'] = array(); 
    301300                } 
    302  
     301                 
    303302                $json_data = json_encode($rules); 
    304                  
    305303                $script_begin = "#Filtro gerado por Expresso Livre\r\n\r\n"; 
    306  
    307304                $content = $script_begin . $script_header . $script_rules . "\r\n\r\n#PseudoScript#" . "\r\n#" . $json_data; 
    308305 
Note: See TracChangeset for help on using the changeset viewer.