Ignore:
Timestamp:
08/10/07 14:12:05 (17 years ago)
Author:
niltonneto
Message:

Atualizações da versão nova.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r46 r51  
    3939        function open_mbox($folder = False) 
    4040        { 
     41                $folder = mb_convert_encoding($folder, "UTF7-IMAP","ISO_8859-1"); 
    4142                $this->mbox = @imap_open("{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$folder, $this->username, $this->password) or die(serialize(array('imap_error' => imap_last_error()))); 
    4243                return $this->mbox; 
     
    4748                include("class.imap_attachment.inc.php"); 
    4849                $imap_attachment = new imap_attachment(); 
    49                 $folder =$params['folder'];              
     50                $folder =$params['folder']; 
    5051                $msg_range_begin = $params['msg_range_begin']; 
    5152                $msg_range_end = $params['msg_range_end']; 
    5253                $sort_box_type = $params['sort_box_type']; 
     54                $search_box_type = $params['search_box_type'] != "ALL" && $params['search_box_type'] != "" ? $params['search_box_type'] : false; 
    5355                $sort_box_reverse = $params['sort_box_reverse'];                                 
    54                 $mbox_stream = $this->open_mbox($folder); 
     56                $this->mbox = $this->open_mbox($folder); 
    5557                 
    5658                switch($sort_box_type){ 
    5759                        case 'SORTFROM': 
    58                                 $sort_array_msg = $this->imap_sortfrom($mbox_stream, $sort_box_reverse, $folder); 
     60                                $sort_array_msg = $this->imap_sortfrom($sort_box_reverse, $folder); 
    5961                                break; 
    6062                        case 'SORTSUBJECT': 
    61                                 $sort_array_msg = imap_sort($mbox_stream, SORTSUBJECT, $sort_box_reverse, SE_UID); 
    62                                 break; 
    63                         case 'SORTARRIVAL': 
    64                                 $sort_array_msg = imap_sort($mbox_stream, SORTARRIVAL, $sort_box_reverse, SE_UID); 
     63                                $sort_array_msg = imap_sort($this->mbox, SORTSUBJECT, $sort_box_reverse, SE_UID, $search_box_type); 
    6564                                break; 
    6665                        case 'SORTSIZE': 
    67                                 $sort_array_msg = imap_sort($mbox_stream, SORTSIZE, $sort_box_reverse, SE_UID); 
     66                                $sort_array_msg = imap_sort($this->mbox, SORTSIZE, $sort_box_reverse, SE_UID, $search_box_type); 
    6867                                break; 
    69                         case 'UNSEEN': 
    70                         $sort_array_msg = imap_search($mbox_stream,"UNSEEN", SE_UID); // nao lidas 
    71                         break; 
    72                         case 'ANSWERED': 
    73                         $sort_array_msg = imap_search($mbox_stream,"ANSWERED", SE_UID); // repondidas 
    74                         break; 
    75                         case 'SEEN': 
    76                         $sort_array_msg = imap_search($mbox_stream,"SEEN", SE_UID); // lidas 
    77                         break; 
    78                         case 'FLAGGED': 
    79                         $sort_array_msg = imap_search($mbox_stream,"FLAGGED", SE_UID); // importantes 
    80                         break; 
    81                         case 'ALL': 
    82                         $sort_array_msg = imap_search($mbox_stream,SORTARRIVAL,$sort_box_reverse,  SE_UID); // Todas 
    83                         break; 
     68                        default: 
     69                                $sort_array_msg = imap_sort($this->mbox, SORTARRIVAL, $sort_box_reverse, SE_UID, $search_box_type); 
     70                                break;                                                   
    8471                } 
    8572                 
     
    9279                        $msg_number = $sort_array_msg[$msg_range_begin-1]; 
    9380 
    94                         $header = @imap_headerinfo($mbox_stream, imap_msgno($mbox_stream, $msg_number), 80, 255); 
     81                        $header = @imap_headerinfo($this->mbox, imap_msgno($this->mbox, $msg_number), 80, 255); 
    9582                        if (!is_object($header)) 
    9683                                return false;                    
     
    136123                         
    137124                        $return[$i]['attachment'] = array(); 
    138                         $return[$i]['attachment'] = $imap_attachment->get_attachment_headerinfo($mbox_stream, $msg_number);                      
     125                        $return[$i]['attachment'] = $imap_attachment->get_attachment_headerinfo($this->mbox, $msg_number);                       
    139126                        $i++; 
    140127                } 
    141128                } 
    142129                $return['num_msgs'] = $num_msgs;                 
     130                 
    143131                return $return; 
    144132        } 
     
    173161        function get_info_msg($params) 
    174162        { 
    175                 include("class.imap_attachment.inc.php"); 
    176                 $imap_attachment = new imap_attachment(); 
    177                  
     163                $return = array(); 
    178164                $msg_number = $params['msg_number']; 
    179165                $msg_folder = $params['msg_folder'];                             
    180                 $mbox_stream = $this->open_mbox($msg_folder);                    
    181                 $return = array(); 
    182                 $header = imap_headerinfo($mbox_stream, imap_msgno($mbox_stream, $msg_number), 80, 255); 
    183                 $all_header = explode("\n", imap_fetchheader($mbox_stream, $msg_number, FT_UID)); 
     166                if(!$this->mbox) 
     167                        $this->mbox = $this->open_mbox($msg_folder);             
     168                $header = imap_headerinfo($this->mbox, imap_msgno($this->mbox, $msg_number), 80, 255); 
     169                $all_header = explode("\n", imap_fetchheader($this->mbox, $msg_number, FT_UID)); 
     170                $return_get_body = $this->get_body_msg($msg_number, $msg_folder); 
     171                 
     172                $return['body']                 = $return_get_body['body']; 
     173                $return['attachments']  = $return_get_body['attachments']; 
     174                $return['thumbs']               = $return_get_body['thumbs'];            
     175                 
    184176                foreach($all_header as $line) { 
    185177                        if (eregi("^Disposition-Notification-To", $line)) { 
     
    365357                $return['Size'] = $header->Size; 
    366358                $return['reply_toaddress'] = $header->reply_toaddress; 
    367                 $return['body'] = $this->get_body_msg($msg_number, $msg_folder); 
     359                return $return; 
     360        } 
     361         
     362        function get_body_msg($msg_number, $msg_folder) 
     363        { 
     364                include_once("class.message_components.inc.php"); 
     365                $msg = &new message_components($this->mbox); 
     366                $msg->fetch_structure($msg_number); 
     367                $return = array(); 
     368                $return['attachments'] = $this-> download_attachment($msg,$msg_number);          
    368369                if(!$this->has_cid) 
    369                         $return['thumbs'] = $this->get_thumbs($msg_number, $msg_folder); 
    370                 $return['attachments'] = $imap_attachment->download_attachment($mbox_stream, $msg_number); 
    371                 imap_close($mbox_stream); 
    372                 return $return; 
    373         } 
    374          
    375         function get_body_msg($msg_number, $msg_folder) 
    376         { 
    377                 include_once("class.message_components.inc.php"); 
    378                 $mbox_stream = $this -> open_mbox($msg_folder); 
    379  
    380                 $msg =& new message_components($mbox_stream); 
    381                 $msg->fetch_structure($msg_number); 
    382  
     370                        $return['thumbs']  = $this->get_thumbs($msg,$msg_number,$msg_folder);            
     371                 
    383372                if(!$msg->structure[$msg_number]->parts) //Simple message, only 1 piece 
    384373                { 
     
    388377                        if (strtolower($msg->structure[$msg_number]->subtype) == "plain") 
    389378                        { 
    390                                 $content .= nl2br($this->decodeBody((imap_body($mbox_stream, $msg_number, FT_UID)), $msg->encoding[$msg_number][0], $msg->charset[$msg_number][0])); 
     379                                $content .= nl2br($this->decodeBody((imap_body($this->mbox, $msg_number, FT_UID)), $msg->encoding[$msg_number][0], $msg->charset[$msg_number][0])); 
    391380                        } 
    392381                        else if (strtolower($msg->structure[$msg_number]->subtype) == "html") 
    393382                        { 
    394                                 $content .= $this->decodeBody(imap_body($mbox_stream, $msg_number, FT_UID), $msg->encoding[$msg_number][0], $msg->charset[$msg_number][0]); 
     383                                $content .= $this->decodeBody(imap_body($this->mbox, $msg_number, FT_UID), $msg->encoding[$msg_number][0], $msg->charset[$msg_number][0]); 
    395384                        } 
    396385                } 
     
    428417                                                // if TXT file size > 100kb, then it will not expand. 
    429418                                                if(!($file_type == "text/plain" && $msg->fsize[$msg_number][$values] > 102400)) { 
    430                                                         $content .= nl2br(htmlentities($this->decodeBody(imap_fetchbody($mbox_stream, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values])));                                                     
     419                                                        $content .= nl2br(htmlentities($this->decodeBody(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values])));                                                      
    431420                                                } 
    432421                                        } 
     
    434423                                        else if($file_type == "text/html"  && $msg->fsize[$msg_number][$values] < 307200) 
    435424                                        { 
    436                                                 $content .= $this->decodeBody(imap_fetchbody($mbox_stream, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values]); 
     425                                                $content .= $this->decodeBody(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values]); 
    437426                                                $show_only_html = true; 
    438427                                        } 
     
    440429                                else if($file_type == "message/delivery-status"){ 
    441430                                        $content .= "<hr align='left' width='95%' style='border:1px solid #DCDCDC'>"; 
    442                                         $content .= nl2br($this->decodeBody(imap_fetchbody($mbox_stream, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values]));                                           
     431                                        $content .= nl2br($this->decodeBody(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values]));                                            
    443432 
    444433                                } 
     
    447436                                        include_once("class.imap_attachment.inc.php"); 
    448437                                        $att = new imap_attachment(); 
    449                                         $attachments =  $att -> get_attachment_info($mbox_stream,$msg_number); 
     438                                        $attachments =  $att -> get_attachment_info($this->mbox,$msg_number); 
    450439                                        if($attachments['number_attachments'] > 0) {                                                                                             
    451440                                                foreach($attachments ['attachment'] as $index => $attachment){ 
     
    454443                                                                strtolower($attachment['type']) == "plain" 
    455444                                                        ){ 
    456                                                                 $obj = imap_rfc822_parse_headers(imap_fetchbody($mbox_stream, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values]);                                    
     445                                                                $obj = imap_rfc822_parse_headers(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values]);                                     
    457446                                                                $content .= "<hr align='left' width='95%' style='border:1px solid #DCDCDC'>";                                    
    458447                                                                $content .= "<br><table  style='margin:2px;border:1px solid black;background:#EAEAEA'>"; 
     
    463452                                                                $content .= !$obj->cc ? "</table><br>" :"<tr><td><b>".$this->functions->getLang("CC").":</b></td><td>".$this->decode_string($obj->cc[0]->mailbox."@".$obj->cc[0]->host)."</td></tr></table><br>";                                                                
    464453                                                                $ix_part =      strtolower($attachment['type']) == "delivery-status" ? 1 : 0; 
    465                                                                 $content .= nl2br($this->decodeBody(imap_fetchbody($mbox_stream, $msg_number, ($attachment['part_in_msg']+$ix_part).".1", FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values]));                                                          
     454                                                                $content .= nl2br($this->decodeBody(imap_fetchbody($this->mbox, $msg_number, ($attachment['part_in_msg']+$ix_part).".1", FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values]));                                                           
    466455                                                                break;                   
    467456                                                        } 
     
    472461                        if($file_type == "text/plain" && ($show_only_html &&  $msg_part == 1) ||  (!$show_only_html &&  $msg_part == 3)){ 
    473462                                if(strtolower($msg->structure[$msg_number]->subtype) == "mixed" &&  $msg_part == 1) 
    474                                         $content .= nl2br(imap_base64(imap_fetchbody($mbox_stream, $msg_number, $msg_part, FT_UID))); 
     463                                        $content .= nl2br(imap_base64(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID))); 
    475464                                else if(!strtolower($msg->structure[$msg_number]->subtype) == "mixed") 
    476                                         $content .= nl2br(imap_fetchbody($mbox_stream, $msg_number, $msg_part, FT_UID));                                 
     465                                        $content .= nl2br(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID));                          
    477466                        } 
    478467                }  
     
    480469                $params = array('folder' => $msg_folder, "msgs_to_set" => $msg_number, "flag" => "seen");                                
    481470                $this->set_messages_flag($params); 
    482                 imap_close($mbox_stream); 
    483                 $content = $this->process_embedded_images($msg_number, $msg_folder, $content); 
    484                 //$content = $this->htmlfilter($content); 
     471                $content = $this->process_embedded_images($msg,$msg_number,$content); 
    485472                $content = $this->replace_special_characters($content); 
    486                 return $content; 
     473                $return['body'] = $content; 
     474                return $return; 
    487475        } 
    488476         
     
    645633        } 
    646634         
    647         function process_embedded_images($msgno, $msg_folder, $body) 
    648         { 
    649                 include_once("class.message_components.inc.php"); 
    650  
    651                 $mbox_stream = $this->open_mbox($msg_folder); 
    652  
    653                 $msg =& new message_components($mbox_stream); 
    654                 $msg->fetch_structure($msgno); 
     635        function process_embedded_images($msg, $msgno,$body) 
     636        { 
    655637                 
    656638                if (count($msg->inline_id[$msgno]) > 0) 
     
    723705        } 
    724706 
    725         function get_thumbs($msg_number, $msg_folder) 
    726         { 
    727                 include_once ("class.message_components.inc.php"); 
    728  
    729                 $mbox_stream = $this->open_mbox($msg_folder); 
    730                  
    731         $msg =& new message_components($mbox_stream); 
    732         $msg->fetch_structure($msg_number); 
     707        function get_thumbs($msg, $msg_number, $msg_folder) 
     708        { 
    733709                $thumbs_array = array(); 
    734710                $i = 0; 
     
    765741        function delete_msgs($params) 
    766742        { 
     743                 
    767744                $folder = $params['folder']; 
     745                $folder =  mb_convert_encoding($folder, "UTF7-IMAP","ISO-8859-1"); 
    768746                $msgs_number = explode(",",$params['msgs_number']); 
    769747                $border_ID = $params['border_ID']; 
     
    786764                $return['border_ID'] = $border_ID; 
    787765                 
    788                 imap_close($mbox_stream, CL_EXPUNGE); 
     766                if($mbox_stream) 
     767                        imap_close($mbox_stream, CL_EXPUNGE); 
    789768                return $return; 
    790769        } 
     
    801780                $msgs_existent = $params['msgs_existent']; 
    802781                $sort_box_type = $params['sort_box_type']; 
     782                $search_box_type = $params['search_box_type'] != "ALL" && $params['search_box_type'] != "" ? $params['search_box_type'] : false; 
    803783                $sort_box_reverse = $params['sort_box_reverse']; 
    804784                $msgs_in_the_server = array(); 
    805785                $sort_array_msg = array(); 
    806  
    807                 $mbox_stream = $this->open_mbox($folder); 
    808                 $num_msgs = (imap_num_msg($mbox_stream) - imap_num_recent($mbox_stream)); 
    809                  
    810                 $msgs_in_the_client = explode(",", $msgs_existent); 
     786                $this->mbox = $this->open_mbox($folder); 
    811787                 
    812788                switch($sort_box_type){ 
    813789                        case 'SORTFROM': 
    814                                 $sort_array_msg = $this->imap_sortfrom($mbox_stream, $sort_box_reverse, $folder); 
     790                                $sort_array_msg = $this->imap_sortfrom($sort_box_reverse, $folder); 
    815791                                break; 
    816792                        case 'SORTSUBJECT': 
    817                                 $sort_array_msg = imap_sort($mbox_stream, SORTSUBJECT, $sort_box_reverse, SE_UID); 
    818                                 break; 
    819                         case 'SORTARRIVAL': 
    820                                 $sort_array_msg = imap_sort($mbox_stream, SORTARRIVAL, $sort_box_reverse, SE_UID); 
     793                                $sort_array_msg = imap_sort($this->mbox, SORTSUBJECT, $sort_box_reverse, SE_UID, $search_box_type); 
    821794                                break; 
    822795                        case 'SORTSIZE': 
    823                                 $sort_array_msg = imap_sort($mbox_stream, SORTSIZE, $sort_box_reverse, SE_UID); 
     796                                $sort_array_msg = imap_sort($this->mbox, SORTSIZE, $sort_box_reverse, SE_UID, $search_box_type); 
    824797                                break; 
    825                         case 'ANSWERED': 
    826                                 $sort_array_msg = imap_search($mbox_stream,"ANSWERED", SE_UID); // repondidas 
    827                                 break; 
    828                         case 'SEEN': 
    829                                 $sort_array_msg = imap_search($mbox_stream,"SEEN", SE_UID); // lidas 
    830                                 break; 
    831                         case 'FLAGGED': 
    832                                 $sort_array_msg = imap_search($mbox_stream,"FLAGGED", SE_UID); // importantes 
    833                                 break; 
    834                         case 'ALL': 
    835                                 $sort_array_msg = imap_search($mbox_stream,SORTARRIVAL,$sort_box_reverse,  SE_UID); // Todas 
    836                                 break; 
    837                 } 
     798                        default: 
     799                                $sort_array_msg = imap_sort($this->mbox, SORTARRIVAL, $sort_box_reverse, SE_UID, $search_box_type); 
     800                                break;                                                   
     801                } 
     802 
     803                if(!count($sort_array_msg)) 
     804                        return array(); 
     805                         
     806                $num_msgs = (count($sort_array_msg) - imap_num_recent($this->mbox)); 
     807                $msgs_in_the_client = explode(",", $msgs_existent); 
     808 
    838809                 
    839810                for ($msg_range_begin; (($msg_range_begin <= $msg_range_end) && ($msg_range_begin <= count($sort_array_msg))); $msg_range_begin++) 
     
    892863                foreach($msgs_to_exec as $msg_number => $command) 
    893864                { 
    894                         $header = @imap_headerinfo($mbox_stream, imap_msgno($mbox_stream, $msg_number), 80, 255); 
     865                        $header = @imap_headerinfo($this->mbox, imap_msgno($this->mbox , $msg_number), 80, 255); 
    895866                        if (!is_object($header)) 
    896867                                return false; 
     
    939910                         
    940911                        $return[$i]['attachment'] = array(); 
    941                         $return[$i]['attachment'] = $imap_attachment->get_attachment_headerinfo($mbox_stream, $msg_number); 
     912                        $return[$i]['attachment'] = $imap_attachment->get_attachment_headerinfo($this->mbox, $msg_number); 
    942913                        $i++; 
    943914                } 
    944                 $return['new_msgs'] = imap_num_recent($mbox_stream); 
    945                 imap_close($mbox_stream); 
     915                $return['new_msgs'] = imap_num_recent($this->mbox); 
     916                if($this->mbox) 
     917                        imap_close($this->mbox); 
    946918                return $return; 
    947919        } 
     
    996968                } 
    997969                 
    998                 imap_close($mbox_stream); 
    999                 return $result2; 
     970                return array_merge($result2, $this->get_quota()); 
    1000971        } 
    1001972         
     
    1005976                $mbox_stream = $this->open_mbox(); 
    1006977                $imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer']; 
    1007                 //$new_folder = imap_createmailbox($mbox_stream,imap_utf7_encode("{".$imap_server."}INBOX.$namebox")); 
     978                $namebox =  mb_convert_encoding($namebox, "UTF7-IMAP", "UTF-8"); 
    1008979                 
    1009980                $result = "Ok"; 
    1010                 if(!imap_createmailbox($mbox_stream,imap_utf7_encode("{".$imap_server."}$namebox"))) 
     981                if(!imap_createmailbox($mbox_stream,"{".$imap_server."}$namebox")) 
    1011982                { 
    1012983                        $result = implode("<br />\n", imap_errors()); 
    1013984                }        
    1014                          
    1015                 imap_close($mbox_stream); 
    1016                  
     985                 
     986                if($mbox_stream) 
     987                        imap_close($mbox_stream); 
     988                                         
    1017989                return $result; 
    1018990                 
     
    10291001                                if(!imap_createmailbox($mbox_stream,imap_utf7_encode("{".$imap_server."}$tmp"))){ 
    10301002                                        $result = implode("<br />\n", imap_errors()); 
    1031                                         imap_close($mbox_stream);                                        
     1003                                        if($mbox_stream) 
     1004                                                imap_close($mbox_stream);                                        
    10321005                                        return $result; 
    10331006                                } 
    10341007                        } 
    10351008                } 
    1036                 imap_close($mbox_stream); 
     1009                if($mbox_stream) 
     1010                        imap_close($mbox_stream); 
    10371011                return true; 
    10381012        } 
     
    10511025                        $result = implode("<br />\n", imap_errors()); 
    10521026                } 
    1053                  
    1054                 imap_close($mbox_stream); 
     1027                if($mbox_stream) 
     1028                        imap_close($mbox_stream); 
    10551029                return $result; 
    10561030        } 
     
    10661040                $result = "Ok"; 
    10671041                $namebox = mb_convert_encoding($namebox, "UTF7-IMAP","UTF-8"); 
     1042                $new_box = mb_convert_encoding($new_box, "UTF7-IMAP","UTF-8"); 
     1043                 
    10681044                if(!imap_renamemailbox($mbox_stream,"{".$imap_server."}$namebox","{".$imap_server."}$new_box")) 
    10691045                { 
    1070                         $result = implode("<br />\n". imap_errors()); 
    1071                 } 
    1072          
    1073                 imap_close($mbox_stream); 
     1046                        $result = imap_errors();                         
     1047                } 
     1048                if($mbox_stream) 
     1049                        imap_close($mbox_stream); 
    10741050                return $result; 
    10751051                 
     
    10851061                }                
    10861062                $num_msgs = imap_num_msg($this->mbox); 
    1087                 imap_close($this->mbox); 
     1063                if($this->mbox) 
     1064                        imap_close($this->mbox); 
    10881065                 
    10891066                return $num_msgs; 
     
    11061083                $attachments = $params['FILES']; 
    11071084                $forwarding_attachments = $params['forwarding_attachments']; 
    1108                 $folder = $params['folder']; 
     1085                $folder =$params['folder']; 
     1086                $folder = mb_convert_encoding($folder, "UTF7-IMAP","ISO_8859-1");                
    11091087                $folder_name = $params['folder_name'];           
    11101088                // Fix problem with cyrus delimiter changes. 
     
    11131091                $folder = @eregi_replace("INBOX.", "INBOX".$this->imap_delimiter, $folder); 
    11141092                // End Fix. 
    1115                 if ($folder != 'null'){ 
     1093                if ($folder != 'null'){                  
    11161094                        $mail->SaveMessageInFolder = $folder; 
    11171095                } 
     
    12871265        } 
    12881266         
    1289         function get_preferences() 
    1290         { 
    1291                 //print_r($_SESSION['phpgw_info']['expressomail']['user']['preferences']['expressoMail']); 
    1292                 return $_SESSION['phpgw_info']['user']['preferences']['expressoMail']; 
    1293         } 
    1294          
    1295         function imap_sortfrom($mbox_stream, $sort_box_reverse, $folder) 
     1267        function imap_sortfrom($sort_box_reverse, $folder) 
    12961268        { 
    12971269                $sortfrom = array(); 
    12981270                $sortfrom_uid = array(); 
    12991271                 
    1300                 $num_msgs = imap_num_msg($mbox_stream); 
     1272                $num_msgs = imap_num_msg($this->mbox); 
    13011273                for ($i=1; $i<=$num_msgs; $i++) 
    13021274                { 
    1303                         $header = imap_headerinfo($mbox_stream, $i, 80, 255); 
     1275                        $header = imap_headerinfo($this->mbox, $i, 80, 255); 
    13041276                        if (($header->from[0]->mailbox . "@" . $header->from[0]->host) == $_SESSION['phpgw_info']['expressomail']['user']['email'])                              
    13051277                                $from = $header->to; 
     
    13171289                foreach($sortfrom as $index => $header_msg) 
    13181290                { 
    1319                         $sortfrom_uid[] = imap_uid($mbox_stream, $index+1); 
     1291                        $sortfrom_uid[] = imap_uid($this->mbox, $index+1); 
    13201292                } 
    13211293                 
     
    13251297                return $sortfrom_uid; 
    13261298        } 
    1327          
     1299 
    13281300        function move_messages($params) 
    13291301        { 
    13301302                $folder = $params['folder'];             
    13311303                $mbox_stream = $this->open_mbox($folder);                
    1332                 $newmailbox = $params['new_folder']; 
     1304                $newmailbox = ($params['new_folder']); 
     1305                $newmailbox = mb_convert_encoding($newmailbox, "UTF7-IMAP","ISO_8859-1"); 
    13331306                $new_folder_name = $params['new_folder_name']; 
    13341307                $msgs_number = $params['msgs_number']; 
     
    13381311                                                'border_ID' => $params['border_ID']); 
    13391312                 
    1340                 // Caso estejamos no box principal, não é necessário pegar as informação da mensagem anterior.           
    1341                 if (($params['get_previous_msg']) && ($params['border_ID'] != 'null')) 
     1313                // Caso estejamos no box principal, não é necessário pegar a informação da mensagem anterior.            
     1314                if (($params['get_previous_msg']) && ($params['border_ID'] != 'null') && ($params['border_ID'] != '')) 
    13421315                        $return['previous_msg'] = $this->get_info_previous_msg($params); 
    13431316                 
    1344                  
     1317                $mbox_stream = $this->open_mbox($folder);        
    13451318                if(imap_mail_move($mbox_stream, $msgs_number, $newmailbox, CP_UID)) { 
    13461319                        imap_expunge($mbox_stream); 
    1347                         imap_close($mbox_stream); 
     1320                        if($mbox_stream) 
     1321                                imap_close($mbox_stream); 
    13481322                        return $return; 
    13491323                }else { 
     
    13581332                                $quota  = imap_get_quotaroot($mbox_stream, "INBOX");                             
    13591333                                if(! imap_set_quota($mbox, "user".$this->imap_delimiter.$userID, 2.1 * $quota['usage'])) { 
    1360                                         imap_close($mbox_stream);                                                                        
    1361                                         imap_close($mbox); 
     1334                                        if($mbox_stream) 
     1335                                                imap_close($mbox_stream); 
     1336                                        if($mbox)                                                                        
     1337                                                imap_close($mbox); 
    13621338                                        return "move_messages(): Error setting quota for MOVE or DELETE!! ". "user".$this->imap_delimiter.$userID." line ".__LINE__."\n";                                                                
    13631339                                } 
    13641340                                if(imap_mail_move($mbox_stream, $msgs_number, $newmailbox, CP_UID)) { 
    13651341                                        imap_expunge($mbox_stream); 
    1366                                         imap_close($mbox_stream); 
     1342                                        if($mbox_stream) 
     1343                                                imap_close($mbox_stream); 
    13671344                                        // return to original quota limit. 
    13681345                                        if(!imap_set_quota($mbox, "user".$this->imap_delimiter.$userID, $quota['limit'])) { 
    1369                                                 imap_close($mbox); 
     1346                                                if($mbox) 
     1347                                                        imap_close($mbox); 
    13701348                                                return "move_messages(): Error setting quota for MOVE or DELETE!! line ".__LINE__."\n";                                                          
    13711349                                        } 
     
    13731351                                } 
    13741352                                else { 
    1375                                         imap_close($mbox_stream); 
     1353                                        if($mbox_stream) 
     1354                                                imap_close($mbox_stream); 
    13761355                                        if(!imap_set_quota($mbox, "user".$this->imap_delimiter.$userID, $quota['limit'])) { 
    1377                                                 imap_close($mbox); 
     1356                                                if($mbox) 
     1357                                                        imap_close($mbox); 
    13781358                                                return "move_messages(): Error setting quota for MOVE or DELETE!! line ".__LINE__."\n";                                                          
    13791359                                        } 
     
    13831363                        } 
    13841364                        else { 
    1385                                 imap_close($mbox_stream); 
    1386                                 return imap_last_error(); 
     1365                                if($mbox_stream) 
     1366                                        imap_close($mbox_stream); 
     1367                                return "move_messages() line ".__LINE__.": ". imap_last_error()." folder:".$newmailbox; 
    13871368                        } 
    13881369                }                
     
    13921373        { 
    13931374                $folder_id = $params['folder_id']; 
     1375                $folder_id =  mb_convert_encoding($folder_id, "UTF7-IMAP", "UTF-8"); 
    13941376                $folder_name = $params['folder_name']; 
     1377                $folder_name =  mb_convert_encoding($folder_name, "ISO-8859-1", "UTF-8"); 
    13951378                $border_id = $params['border_id']; 
    13961379                $imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer']; 
     
    14041387                $body = str_replace("%nbsp;","&nbsp;",$params['body']); 
    14051388                $body = preg_replace("/\n/","",$body); 
     1389                $body = preg_replace("/\r/","",$body); 
    14061390                 
    14071391                $header =       "From: " . $from . "\r\n" 
     
    14201404                $return['border_id'] = $border_id; 
    14211405                 
    1422                 imap_close($mbox_stream); 
     1406                if($mbox_stream) 
     1407                        imap_close($mbox_stream); 
    14231408                 
    14241409                if (!$return['append']) 
     
    14381423                $return["flag"] = $flag; 
    14391424                 
    1440                 $mbox_stream = $this->open_mbox($folder); 
     1425                if(!$this->mbox) 
     1426                        $this->mbox = $this->open_mbox($folder); 
    14411427                 
    14421428                if ($flag == "unseen") 
    1443                         $return["status"] = imap_clearflag_full($mbox_stream, $msgs_to_set, "\\Seen", ST_UID); 
     1429                        $return["status"] = imap_clearflag_full($this->mbox, $msgs_to_set, "\\Seen", ST_UID); 
    14441430                elseif ($flag == "seen") 
    1445                         $return["status"] = imap_setflag_full($mbox_stream, $msgs_to_set, "\\Seen", ST_UID); 
     1431                        $return["status"] = imap_setflag_full($this->mbox, $msgs_to_set, "\\Seen", ST_UID); 
    14461432                elseif ($flag == "answered"){ 
    1447                         $return["status"] = imap_setflag_full($mbox_stream, $msgs_to_set, "\\Answered", ST_UID); 
    1448                         imap_clearflag_full($mbox_stream, $msgs_to_set, "\\Draft", ST_UID); 
     1433                        $return["status"] = imap_setflag_full($this->mbox, $msgs_to_set, "\\Answered", ST_UID); 
     1434                        imap_clearflag_full($this->mbox, $msgs_to_set, "\\Draft", ST_UID); 
    14491435                } 
    14501436                elseif ($flag == "forwarded") 
    1451                         $return["status"] = imap_setflag_full($mbox_stream, $msgs_to_set, "\\Answered \\Draft", ST_UID); 
     1437                        $return["status"] = imap_setflag_full($this->mbox, $msgs_to_set, "\\Answered \\Draft", ST_UID); 
    14521438                elseif ($flag == "flagged") 
    1453                         $return["status"] = imap_setflag_full($mbox_stream, $msgs_to_set, "\\Flagged", ST_UID); 
     1439                        $return["status"] = imap_setflag_full($this->mbox, $msgs_to_set, "\\Flagged", ST_UID); 
    14541440                elseif ($flag == "unflagged") 
    1455                         $return["status"] = imap_clearflag_full($mbox_stream, $msgs_to_set, "\\Flagged", ST_UID); 
    1456                  
    1457                 imap_close($mbox_stream); 
     1441                        $return["status"] = imap_clearflag_full($this->mbox, $msgs_to_set, "\\Flagged", ST_UID); 
     1442                 
     1443                if($this->mbox) 
     1444                        imap_close($this->mbox); 
    14581445                return $return; 
    14591446        } 
     
    15691556                $reuse_border = $params['reuse_border']; 
    15701557                 
    1571                 $mbox_stream = $this->open_mbox($folder); 
     1558                if(!$this->mbox) 
     1559                        $this->mbox = $this->open_mbox($folder); 
    15721560                 
    15731561                switch($sort_box_type){ 
    15741562                        case 'SORTFROM': 
    1575                                 $sort_array_msg = $this->imap_sortfrom($mbox_stream, $sort_box_reverse, $folder); 
     1563                                $sort_array_msg = $this->imap_sortfrom($this->mbox , $sort_box_reverse, $folder); 
    15761564                                break; 
    15771565                        case 'SORTSUBJECT': 
    1578                                 $sort_array_msg = imap_sort($mbox_stream, SORTSUBJECT, $sort_box_reverse, SE_UID); 
     1566                                $sort_array_msg = imap_sort($this->mbox , SORTSUBJECT, $sort_box_reverse, SE_UID); 
    15791567                                break; 
    15801568                        case 'SORTARRIVAL': 
    1581                                 $sort_array_msg = imap_sort($mbox_stream, SORTARRIVAL, $sort_box_reverse, SE_UID); 
     1569                                $sort_array_msg = imap_sort($this->mbox , SORTARRIVAL, $sort_box_reverse, SE_UID); 
    15821570                                break; 
    15831571                        case 'SORTSIZE': 
    1584                                 $sort_array_msg = imap_sort($mbox_stream, SORTSIZE, $sort_box_reverse, SE_UID); 
     1572                                $sort_array_msg = imap_sort($this->mbox , SORTSIZE, $sort_box_reverse, SE_UID); 
    15851573                                break; 
    15861574                } 
     
    16031591                $params['msg_folder'] = $folder; 
    16041592                 
    1605                 $return = $this->get_info_msg($params); 
     1593                $return = $this->get_info_msg($params);          
    16061594                $return["reuse_border"] = $reuse_border; 
    16071595                return $return; 
     
    16101598        function get_info_previous_msg($params) 
    16111599        { 
    1612                 //$msg_number = $params['msg_number']; 
    16131600                $msg_number = $params['msgs_number']; 
    1614                 //$folder = $params['msg_folder']; 
    16151601                $folder = $params['folder']; 
    16161602                $sort_box_type = $params['sort_box_type']; 
     
    16181604                $reuse_border = $params['reuse_border']; 
    16191605                 
    1620                 $mbox_stream = $this->open_mbox($folder); 
     1606                if(!$this->mbox) 
     1607                        $this->mbox = $this->open_mbox($folder); 
    16211608                 
    16221609                switch($sort_box_type){ 
    16231610                        case 'SORTFROM': 
    1624                                 $sort_array_msg = $this->imap_sortfrom($mbox_stream, $sort_box_reverse, $folder); 
     1611                                $sort_array_msg = $this->imap_sortfrom($this->mbox, $sort_box_reverse, $folder); 
    16251612                                break; 
    16261613                        case 'SORTSUBJECT': 
    1627                                 $sort_array_msg = imap_sort($mbox_stream, SORTSUBJECT, $sort_box_reverse, SE_UID); 
     1614                                $sort_array_msg = imap_sort($this->mbox, SORTSUBJECT, $sort_box_reverse, SE_UID); 
    16281615                                break; 
    16291616                        case 'SORTARRIVAL': 
    1630                                 $sort_array_msg = imap_sort($mbox_stream, SORTARRIVAL, $sort_box_reverse, SE_UID); 
     1617                                $sort_array_msg = imap_sort($this->mbox, SORTARRIVAL, $sort_box_reverse, SE_UID); 
    16311618                                break; 
    16321619                        case 'SORTSIZE': 
    1633                                 $sort_array_msg = imap_sort($mbox_stream, SORTSIZE, $sort_box_reverse, SE_UID); 
     1620                                $sort_array_msg = imap_sort($this->mbox, SORTSIZE, $sort_box_reverse, SE_UID); 
    16341621                                break; 
    16351622                } 
     
    16541641                $return = $this->get_info_msg($params); 
    16551642                $return["reuse_border"] = $reuse_border; 
    1656                 imap_close($mbox_stream); 
    16571643                return $return; 
    16581644        } 
     
    16641650                 
    16651651                $mbox_stream = $this->open_mbox($params['folder']); 
    1666                 $return_array['num_msgs'] = imap_num_msg($mbox_stream); 
    1667                 imap_close($mbox_stream); 
    1668                 //$return_array['num_msgs'] =   $this->get_num_msgs($params['folder']);          
     1652                $return_array['num_msgs'] = imap_num_msg($mbox_stream);          
     1653                if($mbox_stream) 
     1654                        imap_close($mbox_stream); 
     1655                                 
    16691656                return $return_array;  
    16701657        } 
     
    16721659        function get_quota(){ 
    16731660                 
    1674                 $mbox_stream = $this->open_mbox(); 
    1675                  
    1676                 $quota = imap_get_quotaroot($mbox_stream, "INBOX"); 
     1661                if(!$this->mbox) 
     1662                        $this->mbox = $this->open_mbox(); 
     1663                 
     1664                $quota = imap_get_quotaroot($this->mbox, "INBOX"); 
     1665                if($this->mbox) 
     1666                        imap_close($this->mbox); 
     1667                         
    16771668                if (!$quota){ 
    16781669                        return array( 
     
    17311722        function empty_trash() 
    17321723        { 
    1733                 $folder = 'INBOX' . $this->imap_delimiter . 'Trash'; 
     1724                $folder = 'INBOX' . $this->imap_delimiter . 'Lixeira'; 
    17341725                $mbox_stream = $this->open_mbox($folder); 
    17351726                $return = imap_delete($mbox_stream,'1:*'); 
    1736                 imap_close($mbox_stream, CL_EXPUNGE); 
     1727                if($mbox_stream) 
     1728                        imap_close($mbox_stream, CL_EXPUNGE); 
    17371729                return $return; 
    17381730        } 
     
    18131805                        } 
    18141806                        $j++; 
    1815                         imap_close($mbox_stream); 
     1807                        if($mbox_stream) 
     1808                                imap_close($mbox_stream); 
    18161809                } 
    18171810         
     
    18321825                return $return; 
    18331826        } 
    1834          
    1835         /* 
    1836         function movetotrash_and_show_previous_message($params) 
    1837         { 
    1838                 $return = $this->get_info_previous_msg($params); 
    1839                  
    1840                 $params_tmp1 = array(); 
    1841                 $params_tmp1['msgs_number'] = $params['msg_number']; 
    1842                 $params_tmp1['folder'] = $params['msg_folder']; 
    1843                 $params_tmp1['new_folder'] = 'INBOX'.$this->imap_delimiter.'Trash'; 
    1844                  
    1845                 $return_tmp1 = $this->move_messages($params_tmp1); 
    1846                  
    1847                 $return['msg_number_deleted'] = $return_tmp1; 
    1848                  
    1849                 return $return; 
    1850         } 
    1851         */ 
     1827                 
    18521828         
    18531829        function automatic_trash_cleanness($params) 
     
    18551831                $before_date = date("m/d/Y", strtotime("-".$params['before_date']." day")); 
    18561832                $criteria =  'BEFORE "'.$before_date.'"'; 
    1857                 $mbox_stream = $this->open_mbox('INBOX'.$this->imap_delimiter."Trash"); 
     1833                $mbox_stream = $this->open_mbox('INBOX'.$this->imap_delimiter."Lixeira"); 
    18581834                $messages = imap_search($mbox_stream, $criteria, SE_UID); 
    18591835                if (is_array($messages)){ 
     
    18621838                        } 
    18631839                } 
    1864                  
    1865                 imap_close($mbox_stream, CL_EXPUNGE); 
     1840                if($mbox_stream) 
     1841                        imap_close($mbox_stream, CL_EXPUNGE); 
    18661842                return $messages; 
    18671843        } 
     
    19081884                                        } 
    19091885                                } 
    1910                                 imap_close($mbox_stream);                
     1886                                if($mbox_stream) 
     1887                                        imap_close($mbox_stream);                
    19111888                        } 
    19121889                }                
     
    20952072                return true; 
    20962073        } 
     2074         
     2075        function download_attachment($msg,$msgno) 
     2076        { 
     2077                $array_parts_attachments = array();              
     2078                $array_parts_attachments['names'] = ''; 
     2079                include("class.imap_attachment.inc.php"); 
     2080                $imap_attachment = new imap_attachment();                
     2081                 
     2082                if (count($msg->fname[$msgno]) > 0) 
     2083                { 
     2084                        $i = 0; 
     2085                        foreach ($msg->fname[$msgno] as $index=>$fname) 
     2086                        { 
     2087                                $array_parts_attachments[$i]['pid'] = $msg->pid[$msgno][$index]; 
     2088                                $array_parts_attachments[$i]['name'] = $imap_attachment->flat_mime_decode($fname); 
     2089                                $array_parts_attachments[$i]['name'] = $array_parts_attachments[$i]['name'] ? $array_parts_attachments[$i]['name'] : "attachment.bin"; 
     2090                                $array_parts_attachments[$i]['encoding'] = $msg->encoding[$msgno][$index]; 
     2091                                $array_parts_attachments['names'] .= $array_parts_attachments[$i]['name'] . ', '; 
     2092                                $array_parts_attachments[$i]['fsize'] = $msg->fsize[$msgno][$index]; 
     2093                                $i++; 
     2094                        } 
     2095                } 
     2096                $array_parts_attachments['names'] = substr($array_parts_attachments['names'],0,(strlen($array_parts_attachments['names']) - 2)); 
     2097                return $array_parts_attachments; 
     2098        }        
    20972099} 
    20982100?> 
Note: See TracChangeset for help on using the changeset viewer.