Changeset 6487 for trunk/expressoMail1_2/inc/class.imap_functions.inc.php
- Timestamp:
- 06/14/12 09:02:04 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.imap_functions.inc.php
r6483 r6487 1095 1095 function get_info_msg($params) 1096 1096 { 1097 1098 1097 if(isset($params['alarm'])){ 1099 1098 $alarm = $params['alarm']; … … 5332 5331 5333 5332 } 5333 5334 5335 /** 5336 * Método que retorna as mensagens com a flag $FilteredMessage que representa as mensagens filtradas que devem ser alertadas para o usuário 5337 * 5338 * @license http://www.gnu.org/copyleft/gpl.html GPL 5339 * @author Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 5340 * @sponsor Caixa Econômica Federal 5341 * @author Airton Bordin Junior <airton@prognus.com.br> 5342 * @author Marcieli <marcieli@prognus.com.br> 5343 * @author Marcos <marcosw@prognus.com.br> 5344 * @param <Array> <$paramFolders> <Pastas onde devem ser buscadas as mensagens> 5345 * @return <Mensagens encontradas com a flag $FilteredMessage> 5346 * @access <public> 5347 */ 5348 function getFlaggedAlertMessages($paramFolders) { 5349 5350 $folders = explode(",", $paramFolders['folders']); 5351 5352 $messages = array(); 5353 $result = array(); 5354 $label = '$FilteredMessage'; 5355 5356 foreach ($folders as $folder) { 5357 $this->mbox = $this->open_mbox($folder); 5358 /* Não deletadas, não lidas e com a flag */ 5359 $messages = imap_search($this->mbox, 'UNDELETED UNSEEN KEYWORD "$FilteredMessage"', SE_UID); 5360 if(is_array($messages)) 5361 foreach ($messages as $k => $m) { 5362 $headers = imap_fetch_overview($this->mbox, $m, FT_UID); 5363 $date = explode(" ", $headers[0]->date); 5364 $result[$m."_".$folder] = array ( 5365 'udate' => $headers[0]->udate, 5366 'smalldate' => $date[4], 5367 'from' => $headers[0]->from, 5368 'subject' => self::decodeMimeString($headers[0]->subject), 5369 'msg_number' => $m, 5370 'msg_folder' => $folder 5371 ); 5372 } 5373 } 5374 $result_final = array(); 5375 foreach ($result as $r){ 5376 $result_final[] = $r; 5377 } 5378 5379 return $result_final; 5380 } 5381 5382 /** 5383 * Esta função é chamada ao clicar sobre uma mensagem listada nos alertas de Filtro por Remetente 5384 * remove a flag e chama a função que recupera os dados da mensagem, para serem utilizados na abertura da aba de leitura da msg 5385 */ 5386 function open_flagged_msg($params){ 5387 $message_number = $params['msg_number']; 5388 $message_folder = $params['msg_folder']; 5389 $alarm = $params['alarm']; 5390 if ($message_folder && $message_number) { 5391 $this->mbox = $this->open_mbox($message_folder); 5392 imap_clearflag_full($this->mbox, $message_number, '$FilteredMessage', ST_UID); 5393 } 5394 $r = $this->get_info_msg(array('msg_number' => $message_number, 'msg_folder' =>urlencode($message_folder), 'alarm' => ($alarm))); 5395 return $r; 5396 } 5397 5398 /** 5399 * Remove a flag que caracteriza uma mensagem como alertada por Filtro por Remetente. 5400 * se houver o parametro msg_number, então remove a flag de uma msg especifica 5401 * se não houver o parametro msg_number, mas sim o from, então remove a flag de todas as msgs da pasta (parametro from), 5402 * e que o remetente for o from. 5403 */ 5404 function removeFlagMessagesFilter($params){ 5405 $message_number = $params['msg_number']; 5406 $folder = $params['folder']; 5407 5408 if(isset($message_number)){ 5409 if(isset($folder)){ 5410 $message_number = explode(',', $message_number); 5411 $this->mbox = $this->open_mbox($folder); 5412 foreach ($message_number as $k => $m) { 5413 imap_clearflag_full($this->mbox, $m, '$FilteredMessage', ST_UID); 5414 } 5415 } 5416 } 5417 else{ 5418 $from = $params['from']; 5419 if(isset($folder) && isset($from)){ 5420 $this->mbox = $this->open_mbox($folder); 5421 $messages = imap_search($this->mbox, 'UNDELETED UNSEEN KEYWORD "$FilteredMessage"', SE_UID); 5422 } 5423 if(is_array($messages)){ 5424 foreach ($messages as $k => $m) { 5425 $headers = imap_fetch_overview($this->mbox, $m, FT_UID); 5426 if(strpos($headers[0]->from, $from) > 0){ 5427 imap_clearflag_full($this->mbox, $m, '$FilteredMessage', ST_UID); 5428 } 5429 } 5430 } 5431 } 5432 5433 return array('status' => "success"); 5434 } 5435 5334 5436 } 5335 5437 ?>
Note: See TracChangeset
for help on using the changeset viewer.