Changeset 7352 for sandbox/2.5.0-expresso1/expressoMail1_2
- Timestamp:
- 10/05/12 12:55:44 (12 years ago)
- Location:
- sandbox/2.5.0-expresso1/expressoMail1_2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/2.5.0-expresso1/expressoMail1_2/inc/class.imap_functions.inc.php
r7331 r7352 4612 4612 4613 4613 function insert_email($source,$folder,$timestamp,$flags){ 4614 4614 4615 4615 $username = $_SESSION['phpgw_info']['expressomail']['user']['userid']; 4616 4616 $password = $_SESSION['phpgw_info']['expressomail']['user']['passwd']; … … 4619 4619 $imap_options = '/notls/novalidate-cert'; 4620 4620 4621 4622 4621 $folder = mb_convert_encoding( $folder, "UTF7-IMAP","ISO-8859-1"); 4623 4624 4622 $mbox_stream = imap_open("{".$imap_server.":".$imap_port.$imap_options."}".$folder, $username, $password); 4625 4623 4626 4624 if(imap_last_error() === 'Mailbox already exists') 4627 4625 imap_createmailbox($mbox_stream,imap_utf7_encode("{".$imap_server."}".$folder)); 4626 4628 4627 if($timestamp){ 4629 $pdate = date_parse(date('r')); // pega a data atual do servidor (TODO: pegar a data da mensagem local) 4630 $timestamp += $pdate['zone']*(60); //converte a data da mensagem para o fuso horário GMT 0. Isto é feito devido ao Expresso Mail armazenar a data no fuso horário GMT 0 e para exibi-la converte ela para o fuso horário local. 4631 /* TODO: o diretorio /tmp deve ser substituido pelo diretorio temporario configurado no setup */ 4632 $file = "/tmp/sess_".$_SESSION[ 'phpgw_session' ][ 'session_id' ]; 4633 4634 $f = fopen($file,"w"); 4635 fputs($f,base64_encode($source)); 4636 fclose($f); 4637 $command = "python ".dirname(__FILE__)."/../imap.py \"$imap_server\" \"$imap_port\" \"$username\" \"$password\" \"$timestamp\" \"$folder\" \"$file\""; 4638 $return['command']= exec($command); 4628 if(version_compare(PHP_VERSION, '5.3.2', '>=')){ 4629 $return['append'] = imap_append($mbox_stream, "{".$imap_server.":".$imap_port."}".mb_convert_encoding($folder, "UTF7-IMAP","ISO_8859-1"), $source,'',date('d-M-Y H:i:s O',$timestamp)); 4630 }else{ 4631 $pdate = date_parse(date('r')); // pega a data atual do servidor (TODO: pegar a data da mensagem local) 4632 $timestamp += $pdate['zone']*(60); //converte a data da mensagem para o fuso horário GMT 0. Isto é feito devido ao Expresso Mail armazenar a data no fuso horário GMT 0 e para exibi-la converte ela para o fuso horário local. 4633 /* TODO: o diretorio /tmp deve ser substituido pelo diretorio temporario configurado no setup */ 4634 $file = "/tmp/sess_".$_SESSION[ 'phpgw_session' ][ 'session_id' ]; 4635 4636 $f = fopen($file,"w"); 4637 fputs($f,base64_encode($source)); 4638 fclose($f); 4639 $command = "python ".dirname(__FILE__)."/../imap.py \"$imap_server\" \"$imap_port\" \"$username\" \"$password\" \"$timestamp\" \"$folder\" \"$file\""; 4640 $return['command']= exec($command); 4641 } 4639 4642 }else{ 4640 4643 $return['append'] = imap_append($mbox_stream, "{".$imap_server.":".$imap_port."}".$folder, $source, "\\Seen"); 4641 4644 } 4645 4646 if (!empty($return['command'])) 4647 { 4648 list ($result, $msg) = explode(':',$return['command']); 4649 if (strtoupper($result) === 'NO') 4650 { 4651 $return['error'] = $msg; 4652 return $return; 4653 } 4654 } 4655 4642 4656 $status = imap_status($mbox_stream, "{".$this->imap_server.":".$this->imap_port."}".$folder, SA_UIDNEXT); 4643 4657 … … 4665 4679 $flags_fixed.="\\Answered \\Draft "; 4666 4680 imap_setflag_full($mbox_stream, $return['msg_no'], $flags_fixed, ST_UID); 4667 4681 } 4668 4682 4669 4683 //Ignorando erro de AUTH=Plain … … 4730 4744 4731 4745 function treat_base64_from_post($source){ 4732 $offset = 0; 4733 do 4746 //Marcosw inicio - Necessário alterar a forma com que é tratada a quebra de linha do fonte da mensagem, caso contrário a mensagem não será desarquivada. 4747 $source = preg_replace('/(?<!\r)\n/', "\r\n", $source); 4748 //Marcosw fim 4749 4750 $offset = 0; 4751 do 4752 { 4753 if($inicio = strpos($source, 'Content-Transfer-Encoding: base64', $offset)) 4734 4754 { 4735 if($inicio = strpos($source, 'Content-Transfer-Encoding: base64', $offset)) 4736 { 4737 $inicio = strpos($source, "\n\r", $inicio); 4738 $fim = strpos($source, '--', $inicio); 4739 if(!$fim) 4740 $fim = strpos($source,"\n\r", $inicio); 4741 $length = $fim-$inicio; 4742 $parte = substr( $source,$inicio,$length-1); 4743 $parte = str_replace(" ", "+", $parte); 4744 $source = substr_replace($source, $parte, $inicio, $length-1); 4745 } 4746 if($offset > $inicio) 4747 $offset=FALSE; 4748 else 4749 $offset = $inicio; 4755 $inicio = strpos($source, "\n\r", $inicio); 4756 $fim = strpos($source, '--', $inicio); 4757 if(!$fim) 4758 $fim = strpos($source,"\n\r", $inicio); 4759 $length = $fim-$inicio; 4760 $parte = substr( $source,$inicio,$length-1); 4761 $parte = str_replace(" ", "+", $parte); 4762 $source = substr_replace($source, $parte, $inicio, $length-1); 4750 4763 } 4751 while($offset); 4752 return $source; 4764 if($offset > $inicio) 4765 $offset=FALSE; 4766 else 4767 $offset = $inicio; 4768 } 4769 while($offset); 4770 return $source; 4753 4771 } 4754 4772 … … 4779 4797 4780 4798 $source = $this->treat_base64_from_post($sourcedec); 4799 4781 4800 $insert = $this->insert_email($source,$dest_folder,$timestamps[$index],$flags[$index]); 4782 4801 -
sandbox/2.5.0-expresso1/expressoMail1_2/js/mail_archiver.js
r7340 r7352 972 972 // expresso_mail_archive.currentfolder = ttreeBox.name_folder.substr(6, ttreeBox.name_folder.length); 973 973 // } 974 //Marcosw fim 975 976 //Marcosw inicio - adicionado código atualizar a folder corretamente 977 expresso_mail_archive.currentfolder = folder.substr(6, folder.length); 974 978 //Marcosw fim 975 979
Note: See TracChangeset
for help on using the changeset viewer.