Changeset 7414 for trunk/expressoMail1_2/inc/class.exporteml.inc.php
- Timestamp:
- 10/11/12 18:14:36 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.exporteml.inc.php
r7040 r7414 56 56 // Rommel Cysne (rommel.cysne@serpro.gov.br) 57 57 // em 17/12/2008. 58 59 function createFileEml_by_localFolder($sEMLData, $tempDir, $file){ 60 61 $file = "{$file}.eml"; 62 63 $f = fopen($tempDir.'/'.$file,"w"); 64 if(!$f) 65 return False; 66 67 fputs($f,$sEMLData); 68 fclose($f); 69 70 return $file; 71 } 72 58 73 function createFileEml($sEMLData, $tempDir, $id, $subject=false, $i=false) 59 74 { … … 101 116 } 102 117 103 function createFileZip($files, $tempDir){ 118 function createFileZip($files, $tempDir){ 119 104 120 $tmp_zip_filename = "email_".$_SESSION[ 'phpgw_session' ][ 'session_id' ].".zip"; 105 106 121 if (!empty($files)) 107 122 { … … 119 134 } 120 135 } 121 122 $command = "cd " . escapeshellarg($tempDir) . " && nice zip -m9 " . escapeshellarg($tmp_zip_filename) . " " . $files; 136 137 138 $command = "cd " . escapeshellarg($tempDir) . " && nice zip -m9 " . escapeshellarg($tmp_zip_filename) . " " . $files; 139 140 123 141 if(!exec($command)) { 124 142 $command = "cd " . escapeshellarg($tempDir) . " && rm ".$files." ". escapeshellarg($tmp_zip_filename); … … 126 144 return null; 127 145 } 128 146 129 147 return $tmp_zip_filename; 130 148 131 149 } 132 150 133 function export_all($params){ 134 151 function export_all_byLocalFolder($params){ 152 $error = false; 153 154 if(empty($params['messages'])){ 155 $file["empty_folder"] = true; 156 } else { 157 foreach($params['messages'] as $eachMsg){ 158 $header = ""; 159 $body = ""; 160 $tempDir = $this->tempDir; 161 162 $this->get_header_byLocalFolder($eachMsg, $header); 163 $this->get_body_byLocalFolder($eachMsg, $body); 164 $sEMLData = $this->parseEml($header, $body); 165 $fileName = $this->createFileEml_by_localFolder($sEMLData, $tempDir,$eachMsg['msg_number']); 166 167 if(!$fileName){ 168 $error = true; 169 break; 170 } else 171 $fileNames .= "\"".$fileName."\" "; 172 } 173 174 $nameFileZip = 'False'; 175 if($fileNames && !$error) { 176 $nameFileZip = $this->createFileZip($fileNames, $tempDir); 177 ($nameFileZip) ? ($file = $tempDir.'/'.$nameFileZip) : ($file = false); 178 } else 179 $file = false; 180 } 181 182 return $file; 183 184 } 185 186 function get_header_byLocalFolder($eachMsg, &$header){ 187 $header = <<<header 188 MIME-Version: 1.0 189 Content-Type: text/html; charset=ISO-8859-1 190 Content-Transfer-Encoding: quoted-printable 191 From: "{$eachMsg['from']['name']}" <{$eachMsg['from']['email']}> 192 To: {$eachMsg['to']['email']} 193 Subject: {$eachMsg['subject']} 194 Message-Id: {$eachMsg['msg_number']} 195 Date: {$eachMsg['date']} 196 header; 197 } 198 199 function get_body_byLocalFolder($eachMsg, &$body){ 200 $body = $eachMsg['msg_sample']['body']; 201 } 202 203 function export_all($params){ 204 135 205 $this->folder = $params['folder']; 136 206 $this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","UTF-8"); … … 140 210 141 211 $msgs = imap_search($this->mbox_stream,"ALL",SE_UID); 212 142 213 if($msgs){ 143 214 foreach($msgs as $nMsgs){ 144 $header = $this-> getHeader($nMsgs); 145 $body = $this-> getBody($nMsgs); 215 216 $header = $this-> getHeader($nMsgs); 217 $body = $this-> getBody($nMsgs); 218 146 219 $sEMLData = $this -> parseEml($header, $body); 147 220 $fileName = $this -> CreateFileEml($sEMLData, $tempDir,$nMsgs); … … 478 551 } 479 552 553 //MAILARCHIVER 554 function js_source_var($params) { 555 $this-> folder = $params['folder']; 556 if(!$this->folder){ 557 $aux = explode(';',$params['msgs_to_export']); 558 $this->folder = $aux[0]; 559 $id_number = $aux[1]; 560 } 561 else{ 562 $id_number = $params['msgs_to_export']; 563 } 564 $this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","ISO_8859-1"); 565 $tempDir = ini_get("session.save_path"); 566 567 $this->connectImap(); 568 $header = $this-> getHeader($id_number); 569 $body = $this-> getBody($id_number); 570 571 if(!strpos($header,"Date: ")){ 572 $header = "Date: " . $this->getHeaderInfo($id_number)->Date . "\r\n" .$header ; 573 } 574 575 imap_close($this->mbox_stream); 576 577 $input = $header . "\r\n\r\n" . $body; 578 $input = preg_replace('/\x1d/', '', $input); //remove special char control detected (hex 1D) 579 580 return($input); 581 } 582 480 583 function export_msg_data($id_msg,$folder) { 481 584 $this->folder = $folder; … … 752 855 return imap_fetchheader($this->mbox_stream, $msg_number, FT_UID); 753 856 } 857 858 function getHeaderInfo($msg_number){ 859 $header = imap_headerinfo($this->mbox_stream, imap_msgno($this->mbox_stream, $msg_number), 80, 255); 860 return $header; 861 } 754 862 755 863 function getBody($msg_number){
Note: See TracChangeset
for help on using the changeset viewer.