Ignore:
Timestamp:
01/15/09 10:58:13 (15 years ago)
Author:
eduardoalex
Message:

Ticket #400

File:
1 edited

Legend:

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

    r605 r613  
    162162        } 
    163163         
     164        /* 
     165                Remove os anexos de uma mensagem. A estratégia para isso é criar uma mensagem nova sem os anexos, mantendo apenas 
     166                a primeira parte do e-mail, que é o texto, sem anexos. 
     167                O método considera que o email é multpart. 
     168        */ 
     169        function remove_attachments($params) { 
     170                include_once("class.message_components.inc.php"); 
     171                if(!$this->mbox || !is_resource($this->mbox)) 
     172                        $this->mbox = $this->open_mbox($params["folder"]); 
     173                $return["status"] = true; 
     174                $return["msg_num"] = $params["msg_num"]; 
     175                $header = ""; 
     176                 
     177                $headertemp = explode("\n",imap_fetchheader($this->mbox, imap_msgno($this->mbox, $params["msg_num"]))); 
     178                foreach($headertemp as $head) {//Se eu colocar todo o header do email dá pau no append, então procuro apenas o que interessa. 
     179                        $head1 = explode(":",$head); 
     180                        if ( (strtoupper($head1[0]) == strtoupper("to")) ||  
     181                                        (strtoupper($head1[0]) == strtoupper("from")) ||  
     182                                        (strtoupper($head1[0]) == strtoupper("subject")) || 
     183                                        (strtoupper($head1[0]) == strtoupper("date")) ) 
     184                                $header .= $head."\r\n"; 
     185                } 
     186                                 
     187                $msg = &new message_components($this->mbox); 
     188                $msg->fetch_structure($params["msg_num"]);/* O fetchbody tava trazendo o email com problemas na acentuação.  
     189                                                             Então uso essa classe para verificar a codificação e o charset,  
     190                                                             para que o método decodeBody do expresso possa trazer tudo certinho*/ 
     191                 
     192                $status = @imap_append($this->mbox, 
     193                                "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"], 
     194                                        $header. 
     195                                        "\r\n". 
     196                                        str_replace("\n","\r\n",$this->decodeBody( 
     197                                                        imap_fetchbody($this->mbox,imap_msgno($this->mbox, $params["msg_num"]),"1"), 
     198                                                        $msg->encoding[$params["msg_num"]][0], $msg->charset[$params["msg_num"]][0] 
     199                                                        )                                        
     200                                        )); //Append do novo email, só com header e conteúdo sem anexos. 
     201                 
     202                if(!$status) { 
     203                        $return["status"] = false; 
     204                        $return["msg"] = lang("error appending mail on delete attachments"); 
     205                } 
     206                 
     207                @imap_delete($this->mbox, imap_msgno($this->mbox, $params["msg_num"])); //Insere o novo e-mail sem anexos. 
     208                @imap_expunge($this->mbox); //Deleta o e-mail com anexos 
     209                 
     210                return $return; 
     211                 
     212        } 
     213 
    164214        function get_info_msg($params) 
    165215        { 
Note: See TracChangeset for help on using the changeset viewer.