Changeset 4893 for sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/inc/class.imap_functions.inc.php
- Timestamp:
- 08/03/11 09:06:59 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/inc/class.imap_functions.inc.php
r4644 r4893 14 14 'get_folders_list' => True, 15 15 'import_msgs' => True, 16 'msgs_to_archive' => True 16 'msgs_to_archive' => True, 17 'get_offset_gmt' => True 17 18 ); 18 19 … … 116 117 $return['folder'] = $folder; 117 118 118 //Para enviar o offset entre o timezone definido pelo usu ário e GMT119 //Para enviar o offset entre o timezone definido pelo usuï¿œrio e GMT 119 120 $return['offsetToGMT'] = $this->functions->CalculateDateOffset(); 120 121 … … 182 183 //if ($this->prefs['use_important_flag'] ) 183 184 //{ 184 /*Como eu preciso do atributo Importance para saber se o email é185 * importante ou n ão, uso abaixo a função imap_fetchheader e busco186 * o atributo importance nela. Isso faz com que eu acesse o cabe çalho185 /*Como eu preciso do atributo Importance para saber se o email ï¿œ 186 * importante ou nï¿œo, uso abaixo a funᅵᅵo imap_fetchheader e busco 187 * o atributo importance nela. Isso faz com que eu acesse o cabeï¿œalho 187 188 * duas vezes e de duas formas diferentes, mas em contrapartida, eu 188 * n ão preciso reimplementar o método utilizando o fetchheader.189 * Como as mensagens s ão renderizadas em um número pequeno por vez,190 * n ão parece ter perda considerável de performance.189 * nï¿œo preciso reimplementar o mï¿œtodo utilizando o fetchheader. 190 * Como as mensagens sï¿œo renderizadas em um nï¿œmero pequeno por vez, 191 * nï¿œo parece ter perda considerï¿œvel de performance. 191 192 */ 192 193 … … 194 195 $flag = preg_match('/importance *: *(.*)\r/i', $tempHeader, $importance); 195 196 //} 196 // Reimplementado c ódigo para identificação dos e-mails assinados e cifrados197 // no m étodo getMessageType(). Mário César Kolling <mario.kolling@serpro.gov.br>197 // Reimplementado cï¿œdigo para identificaᅵᅵo dos e-mails assinados e cifrados 198 // no mï¿œtodo getMessageType(). Mï¿œrio Cï¿œsar Kolling <mario.kolling@serpro.gov.br> 198 199 $head_array['ContentType'] = $this->getMessageType($msg_number, $tempHeader); 199 200 $head_array['Importance'] = $flag==0?"Normal":$importance[1]; … … 242 243 $to = $header->to; 243 244 $head_array['to'] = array(); 244 if($to[1] && $to[1]->host == ".SYNTAX-ERROR.") { //E-mails que n ão possuem o campo "para", vêm com o recipiente preenchido, porém com um recipiente a mais alegando erro de sintaxe.245 if($to[1] && $to[1]->host == ".SYNTAX-ERROR.") { //E-mails que nï¿œo possuem o campo "para", vï¿œm com o recipiente preenchido, porï¿œm com um recipiente a mais alegando erro de sintaxe. 245 246 $head_array['to']['name'] = $head_array['to']['email'] = NULL; 246 247 } … … 316 317 } 317 318 /** 318 * Fun ção que importa arquivos .eml exportados pelo expresso para a caixa do usuário. Testado apenas319 * com .emls gerados pelo expresso, e o arquivo pode ser um zip contendo v ários emls ou um .eml.319 * Funᅵᅵo que importa arquivos .eml exportados pelo expresso para a caixa do usuï¿œrio. Testado apenas 320 * com .emls gerados pelo expresso, e o arquivo pode ser um zip contendo vï¿œrios emls ou um .eml. 320 321 */ 321 322 function import_msgs($params) { … … 408 409 } 409 410 /* 410 Remove os anexos de uma mensagem. A estrat égia para isso écriar uma mensagem nova sem os anexos, mantendo apenas411 a primeira parte do e-mail, que éo texto, sem anexos.412 O m étodo considera que o email émultpart.411 Remove os anexos de uma mensagem. A estratï¿œgia para isso ï¿œ criar uma mensagem nova sem os anexos, mantendo apenas 412 a primeira parte do e-mail, que ï¿œ o texto, sem anexos. 413 O mï¿œtodo considera que o email ï¿œ multpart. 413 414 */ 414 415 function remove_attachments($params) { … … 420 421 421 422 $headertemp = explode("\n",imap_fetchheader($this->mbox, imap_msgno($this->mbox, $params["msg_num"]))); 422 foreach($headertemp as $head) {//Se eu colocar todo o header do email d á pau no append, então procuro apenas o que interessa.423 foreach($headertemp as $head) {//Se eu colocar todo o header do email dï¿œ pau no append, entï¿œo procuro apenas o que interessa. 423 424 $head1 = explode(":",$head); 424 425 if ( (strtoupper($head1[0]) == "TO") || … … 430 431 431 432 $msg = &new message_components($this->mbox); 432 $msg->fetch_structure($params["msg_num"]);/* O fetchbody tava trazendo o email com problemas na acentua ção.433 Ent ão uso essa classe para verificar a codificação e o charset,434 para que o m étodo decodeBody do expresso possa trazer tudo certinho*/433 $msg->fetch_structure($params["msg_num"]);/* O fetchbody tava trazendo o email com problemas na acentuaᅵᅵo. 434 Entï¿œo uso essa classe para verificar a codificaᅵᅵo e o charset, 435 para que o mï¿œtodo decodeBody do expresso possa trazer tudo certinho*/ 435 436 436 437 $all_body_type = strtolower($msg->file_type[$params["msg_num"]][0]); … … 470 471 ) 471 472 ) 472 , "\\Seen"); //Append do novo email, s ó com header e conteúdo sem anexos.473 , "\\Seen"); //Append do novo email, sï¿œ com header e conteï¿œdo sem anexos. 473 474 }else{ 474 475 $status = imap_append($this->mbox, … … 485 486 ) 486 487 ) 487 , "\\Seen"); //Append do novo email, s ó com header e conteúdo sem anexos.488 , "\\Seen"); //Append do novo email, sï¿œ com header e conteï¿œdo sem anexos. 488 489 } 489 490 … … 555 556 $msg_info = $this->get_info_msg($new_params); 556 557 557 $this->mbox = $this->open_mbox($params['folder']); //N ão sei porque, mas se não abrir de novo a caixa dáerro.558 $this->mbox = $this->open_mbox($params['folder']); //Nï¿œo sei porque, mas se nï¿œo abrir de novo a caixa dï¿œ erro. 558 559 $msg_info['header'] = $this->get_info_head_msg($msg_number); 559 560 … … 1361 1362 $body = $this-> replace_links($body); 1362 1363 1363 //Remo ção de tags <span></span> para correção de erro no firefox1364 //Remoᅵᅵo de tags <span></span> para correᅵᅵo de erro no firefox 1364 1365 $body = mb_eregi_replace("<span><span>","",$body); 1365 1366 $body = mb_eregi_replace("</span></span>","",$body); 1366 //Corre ção para compatibilização com Outlook, ao visualizar a mensagem1367 //Correᅵᅵo para compatibilizaᅵᅵo com Outlook, ao visualizar a mensagem 1367 1368 $body = mb_ereg_replace('<!--\[','<!-- [',$body); 1368 1369 $body = mb_ereg_replace('<!\[endif\]-->', '<![endif]-->', $body); … … 1424 1425 */ 1425 1426 1426 // PHP 5.2.x - Remover assim que poss ível1427 // PHP 5.2.x - Remover assim que possï¿œvel 1427 1428 $body = preg_replace_callback( $pattern, 1428 1429 create_function( … … 1646 1647 foreach($msgs_to_exec as $msg_number) 1647 1648 { 1648 /*A fun ção imap_headerinfo não traz o cabeçalho completo, e sim alguns1649 * atributos do cabe çalho. Como eu preciso do atributo Importance1650 * para saber se o email é importante ou não, uso abaixo a função1649 /*A funᅵᅵo imap_headerinfo nï¿œo traz o cabeï¿œalho completo, e sim alguns 1650 * atributos do cabeï¿œalho. Como eu preciso do atributo Importance 1651 * para saber se o email ï¿œ importante ou nï¿œo, uso abaixo a funᅵᅵo 1651 1652 * imap_fetchheader e busco o atributo importance nela para passar 1652 * para as fun ções ajax. Isso faz com que eu acesse o cabeçalho1653 * para as funᅵᅵes ajax. Isso faz com que eu acesse o cabeï¿œalho 1653 1654 * duas vezes e de duas formas diferentes, mas em contrapartida, eu 1654 * n ão preciso reimplementar o método utilizando o fetchheader.1655 * nï¿œo preciso reimplementar o mï¿œtodo utilizando o fetchheader. 1655 1656 */ 1656 1657 … … 1740 1741 1741 1742 /** 1742 * M étodo que faz a verificação do Content-Type do e-mail e verifica se éum e-mail normal,1743 * Mï¿œtodo que faz a verificaᅵᅵo do Content-Type do e-mail e verifica se ï¿œ um e-mail normal, 1743 1744 * assinado ou cifrado. 1744 * @author M ário César Kolling <mario.kolling@serpro.gov.br>1745 * @param $headers Uma String contendo os Headers do e-mail retornados pela fun ção imap_imap_fetchheader1746 * @param $msg_number O n úmero da mesagem1745 * @author Mï¿œrio Cï¿œsar Kolling <mario.kolling@serpro.gov.br> 1746 * @param $headers Uma String contendo os Headers do e-mail retornados pela funᅵᅵo imap_imap_fetchheader 1747 * @param $msg_number O nï¿œmero da mesagem 1747 1748 * @return Retorna o tipo da mensagem (normal, signature, cipher). 1748 1749 */ … … 1766 1767 * Metodo que retorna todas as pastas do usuario logado. 1767 1768 * @param $params array opcional para repassar os argumentos ao metodo. 1768 * Se usar $params['noSharedFolders'] = true, ira retornar todas as pastas do usu ário logado,1769 * Se usar $params['noSharedFolders'] = true, ira retornar todas as pastas do usuï¿œrio logado, 1769 1770 * excluindo as compartilhadas para ele. 1770 * Se usar $params['folderType'] = "default" ir áretornar somente as pastas defaults1771 * Se usar $params['folderType'] = "personal" ir áretornar somente as pastas pessoais1772 * Se usar $params['folderType'] = null ir áretornar todas as pastas1771 * Se usar $params['folderType'] = "default" irï¿œ retornar somente as pastas defaults 1772 * Se usar $params['folderType'] = "personal" irï¿œ retornar somente as pastas pessoais 1773 * Se usar $params['folderType'] = null irï¿œ retornar todas as pastas 1773 1774 * @return Retorna um array contendo as seguintes informacoes de cada pasta: folder_unseen, 1774 1775 * folder_id, folder_name, folder_parent e folder_hasChildren. … … 2131 2132 { 2132 2133 $body = $params['body']; 2133 //Compatibiliza ção com Outlook, ao encaminhar a mensagem2134 //Compatibilizaᅵᅵo com Outlook, ao encaminhar a mensagem 2134 2135 $body = mb_ereg_replace('<!--\[','<!-- [',$body); 2135 2136 } … … 3464 3465 function remove_accents($string) { 3465 3466 return strtr($string, 3466 "? Ó??ó?Ý?úÁÀÃÂÄÇÉÈÊËÍÌ?ÎÏÑÕÔÓÒÖÚÙ?ÛÜ?áàãâäçéèêëíì?îïñóòõôöúù?ûüýÿ",3467 "?ï¿œ??ï¿œ?ï¿œ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵᅵᅵ", 3467 3468 "SOZsozYYuAAAAACEEEEIIIIINOOOOOUUUUUsaaaaaceeeeiiiiinooooouuuuuyy"); 3468 3469 } … … 3948 3949 3949 3950 //Por Bruno Costa(bruno.vieira-costa@serpro.gov.br - Insere emails no imap a partir do fonte do mesmo. Se o argumento timestamp for passado ele utiliza do script python 3950 ///expressoMail1_2/imap.py para inserir uma msg com o hor ário correto pois isso não é porssível com a função imap_append do php.3951 ///expressoMail1_2/imap.py para inserir uma msg com o horï¿œrio correto pois isso nï¿œo ï¿œ porssï¿œvel com a funᅵᅵo imap_append do php. 3951 3952 3952 3953 function insert_email($source,$folder,$timestamp,$flags){ … … 4004 4005 if (version_compare(PHP_VERSION, '5.2.0', '>=')){ 4005 4006 if(!$source = base64_decode($source,true)) 4006 return "error ".$source."Espa ços ".$i;4007 return "error ".$source."Espaï¿œos ".$i; 4007 4008 4008 4009 } 4009 4010 else { 4010 4011 if(!$source = base64_decode($source)) 4011 return "error ".$source."Espa ços ".$i;4012 return "error ".$source."Espaï¿œos ".$i; 4012 4013 } 4013 4014 … … 4045 4046 4046 4047 //Por Bruno Costa(bruno.vieira-costa@serpro.gov.br - Trata fontes de emails enviados via POST para o servidor por um xmlhttprequest, as partes codificados com 4047 //Base64 os "+" s ão substituidos por " " no envio e essa função arruma esse efeito.4048 //Base64 os "+" sï¿œo substituidos por " " no envio e essa funᅵᅵo arruma esse efeito. 4048 4049 4049 4050 function treat_base64_from_post($source){ … … 4071 4072 } 4072 4073 4073 //Por Bruno Costa(bruno.vieira-costa@serpro.gov.br - Recebe os fontes dos emails a serem desarquivados, separa e envia cada um para fun ção insert_mail.4074 //Por Bruno Costa(bruno.vieira-costa@serpro.gov.br - Recebe os fontes dos emails a serem desarquivados, separa e envia cada um para funᅵᅵo insert_mail. 4074 4075 4075 4076 function unarchive_mail($params) … … 4139 4140 return $data; 4140 4141 } 4142 4143 //MailArchiver -> get offsettogmt as a global javascript variable, invoked at "main.js", init() 4144 function get_offset_gmt(){ 4145 return($this->functions->CalculateDateOffset()); 4146 } 4141 4147 } 4142 4148 ?>
Note: See TracChangeset
for help on using the changeset viewer.