Ignore:
Timestamp:
10/01/12 16:17:43 (12 years ago)
Author:
marcosw
Message:

Ticket #3088 - Adicionado funcionalidades de manipulação de flags de mensagens locais

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.5.0-expresso1/expressoMail1_2/inc/class.imap_functions.inc.php

    r7195 r7331  
    46434643                         
    46444644        $return['msg_no'] = $status->uidnext - 1; 
    4645         $return['error'] = imap_last_error(); 
    4646         if(!$return['error'] && $flags != '' ){ 
    4647  
    4648                   $flags_array=explode(':',$flags); 
    4649                   //"Answered","Draft","Flagged","Unseen" 
    4650                   $flags_fixed = ""; 
    4651                   if($flags_array[0] == 'A') 
    4652                         $flags_fixed.="\\Answered "; 
    4653                   if($flags_array[1] == 'X') 
    4654                         $flags_fixed.="\\Draft "; 
    4655                   if($flags_array[2] == 'F') 
    4656                         $flags_fixed.="\\Flagged "; 
    4657                   if($flags_array[3] != 'U') 
    4658                         $flags_fixed.="\\Seen "; 
    4659                   if($flags_array[4] == 'F') 
    4660                         $flags_fixed.="\\Answered \\Draft "; 
    4661                   imap_setflag_full($mbox_stream, $return['msg_no'], $flags_fixed, ST_UID); 
    4662                 } 
     4645                 
     4646                //Marcosw inicio - inserida validação para inserir flags 
     4647        $return['error'] = ''; 
     4648                if(imap_last_error() && imap_last_error() != "SECURITY PROBLEM: insecure server advertised AUTH=PLAIN") 
     4649            $return['error'] = imap_last_error(); 
     4650        //Marcosw fim 
     4651 
     4652                if(!$return['error'] && $flags != '' ){ 
     4653                        $flags_array=explode(':',$flags); 
     4654                        //"Answered","Draft","Flagged","Unseen" 
     4655                        $flags_fixed = ""; 
     4656                        if($flags_array[0] == 'A') 
     4657                            $flags_fixed.="\\Answered "; 
     4658                        if($flags_array[1] == 'X') 
     4659                            $flags_fixed.="\\Draft "; 
     4660                        if($flags_array[2] == 'F') 
     4661                            $flags_fixed.="\\Flagged "; 
     4662                        if($flags_array[3] != 'U') 
     4663                            $flags_fixed.="\\Seen "; 
     4664                        if($flags_array[4] == 'F') 
     4665                            $flags_fixed.="\\Answered \\Draft "; 
     4666                        imap_setflag_full($mbox_stream, $return['msg_no'], $flags_fixed, ST_UID); 
     4667        } 
    46634668         
    46644669        //Ignorando erro de AUTH=Plain 
     
    54985503 
    54995504    //MailArchiver -> get message flags only, invoked at archive operation 
    5500     //Marcosw início - modificação da estrutura da função, removendo estr. de repetição desnecessária 
    5501     function get_msg_flags($args){        
    5502                 $msg_folder = $args['folder']; 
     5505    //Marcosw início - Inserido código novo MailArchiver 
     5506    function get_msg_flags($args){   
     5507        $msg_folder = $args['folder']; 
    55035508        $msg_n = $args['msg_number']; 
     5509        $arr_msg = explode(",", $msg_n); 
     5510        
     5511        for($i=0; $i<count($arr_msg); $i++){ 
     5512                         
     5513            if(!$this->mbox || !is_resource($this->mbox)) 
     5514                $this->mbox = $this->open_mbox($msg_folder); 
    55045515         
    5505         if(!$this->mbox || !is_resource($this->mbox)) 
    5506             $this->mbox = $this->open_mbox($msg_folder); 
    5507      
    5508         if(!is_resource($this->mbox)) 
    5509             return(false); 
    5510            
    5511         $msgno_imap = imap_msgno($this->mbox, $msg_n);           
    5512         $header = @imap_headerinfo($this->mbox, $msgno_imap, 80, 255); 
    5513                  
    5514         if (!is_object($header)) 
    5515             return false; 
    5516  
    5517         $taglist["msgid"] = $msg_n; 
    5518         $taglist["unseen"] = $header->Unseen; 
    5519         $taglist["recent"] = $header->Recent; 
    5520         $taglist["flagged"] = $header->Flagged; 
    5521         $taglist["draft"] = $header->Draft; 
    5522         $taglist["answered"] = $header->Answered; 
    5523         $taglist["deleted"] = $header->Deleted; 
    5524      
    5525         if($header->Answered =='A' && $header->Draft == 'X') 
    5526             $taglist['forwarded'] = 'F'; 
    5527         else 
    5528             $taglist['forwarded'] = ' '; 
    5529      
    5530         if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_important_flag']) { 
    5531             $flag = preg_match('/importance *: *(.*)\r/i',imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_n)),$importance); 
    5532             $taglist["importance"] = $flag==0?"Normal":$importance[1]; 
     5516            if(!is_resource($this->mbox)) 
     5517                return(false); 
     5518                        
     5519            $msgno_imap = imap_msgno($this->mbox, $msg_n);           
     5520                $header = @imap_headerinfo($this->mbox, $msgno_imap, 80, 255); 
     5521                 
     5522            if (!is_object($header)) 
     5523                return false; 
     5524 
     5525            $taglist[$i]["msgid"] = $msg_n; 
     5526            $taglist[$i]["unseen"] = $header->Unseen; 
     5527            $taglist[$i]["recent"] = $header->Recent; 
     5528            $taglist[$i]["flagged"] = $header->Flagged; 
     5529            $taglist[$i]["draft"] = $header->Draft; 
     5530            $taglist[$i]["answered"] = $header->Answered; 
     5531            $taglist[$i]["deleted"] = $header->Deleted; 
     5532         
     5533            if($header->Answered =='A' && $header->Draft == 'X') 
     5534                $taglist[$i]['forwarded'] = 'F'; 
     5535            else 
     5536                $taglist[$i]['forwarded'] = ' '; 
    55335537        } 
    55345538 
     
    55395543         * Fim dos métodos  
    55405544         */ 
    5541          
    55425545} 
    55435546?> 
Note: See TracChangeset for help on using the changeset viewer.