Changeset 5539 for trunk/expressoMail1_2
- Timestamp:
- 02/23/12 17:14:32 (12 years ago)
- Location:
- trunk/expressoMail1_2
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.imap_functions.inc.php
r5533 r5539 5326 5326 return $return; 5327 5327 } 5328 5329 5330 function searchSieveRule( $params ) 5331 { 5332 5333 $imap = $this->open_mbox( 'INBOX' ); 5334 $msgs = imap_sort( $imap , SORTDATE , 0 , SE_UID); 5335 5336 $rr = array(); 5337 5338 5339 foreach ($msgs as $i => $v) 5340 { 5341 5342 $msg = imap_headerinfo ( $imap, imap_msgno($imap, $v) ); 5343 5344 if(isset($params['from'])) 5345 { 5346 $from['from'] = array(); 5347 $from['from']['name'] = $this->decode_string($msg->from[0]->personal); 5348 $from['from']['email'] = $this->decode_string($msg->from[0]->mailbox . "@" . $msg->from[0]->host); 5349 if ($from['from']['name']) 5350 { 5351 if (substr($from['from']['name'], 0, 1) == '"') 5352 $from['from']['full'] = $from['from']['name'] . ' ' . '<' . $from['from']['email'] . '>'; 5353 else 5354 $from['from']['full'] = '"' . $from['from']['name'] . '" ' . '<' . $from['from']['email'] . '>'; 5355 } 5356 else 5357 $from['from']['full'] = $from['from']['email']; 5358 5359 if($this->filterCheck( $from['from']['full'] , $params['from']['criteria'] , $params['from']['filter'] )) 5360 $rr['from'][] = $v; 5361 } 5362 5363 if(isset($params['to'])) 5364 { 5365 $tos = $msg->to; 5366 $val = ''; 5367 foreach( $tos as $to) 5368 { 5369 $tmp = imap_mime_header_decode($to->personal); 5370 $val .= '"' . $tmp[0]->text . '" ' . '<' . $to->mailbox . "@" . $to->host . '>'; 5371 5372 } 5373 if($this->filterCheck( $val , $params['to']['criteria'] , $params['to']['filter'] )) 5374 $rr['to'][] = $v; 5375 5376 $tos = $msg->cc; 5377 $val = ''; 5378 foreach( $tos as $to) 5379 { 5380 $tmp = imap_mime_header_decode($to->personal); 5381 $val .= '"' . $tmp[0]->text . '" ' . '<' . $to->mailbox . "@" . $to->host . '>'; 5382 5383 } 5384 5385 if($this->filterCheck( $val , $params['to']['criteria'] , $params['to']['filter'] )) 5386 $rr['to'][] = $v; 5387 } 5388 5389 if(isset($params['subject'])) 5390 { 5391 $ss = ''; 5392 $subject = imap_mime_header_decode($msg->subject); 5393 foreach ($subject as $tmp) 5394 $ss .= $tmp->text; 5395 5396 if($this->filterCheck($ss , $params['subject']['criteria'] , $params['subject']['filter'] )) 5397 $rr['subject'][] = $v; 5398 } 5399 5400 if(isset($params['body'])) 5401 { 5402 $this->mbox = $this->open_mbox( 'INBOX' ); 5403 $b = $this->get_body_msg( $v , 'INBOX' ); 5404 5405 if( $this->filterCheck( $b['body'] , $params['body']['criteria'] , $params['body']['filter'] )) 5406 $rr['body'][] = $v; 5407 5408 unset($b); 5409 } 5410 5411 if(isset($params['size'])) 5412 { 5413 if( $this->filterCheck( $msg->Size , $params['size']['criteria'] , $params['size']['filter'] )) 5414 $rr['size'][] = $v; 5415 } 5416 } 5417 5418 $rrr = array(); 5419 $init = true; 5420 5421 5422 foreach ($rr as $i => $v) 5423 { 5424 if(count($rrr) == 0 && $init === true) 5425 $rrr = $v; 5426 else if($params['isExact'] === true) 5427 $rrr = array_diff($rrr , $v); 5428 else 5429 $rrr = array_unique(array_merge($rrr , $v)); 5430 5431 } 5432 5433 5434 // if($params['page'] && $params['rows']) 5435 // { 5436 // 5437 // $end = ( $params['rows'] * $params['page'] ); 5438 // $ini = $end - $params['rows'] ; 5439 // 5440 // //Pegando os do range da paginação 5441 // $k = -1; 5442 // $r = array(); 5443 // foreach ($rrr as $v) 5444 // { 5445 // $k++; 5446 // if( $k < $ini || $k >= $end ) continue; 5447 // $r[] = $v; 5448 // } 5449 // ////////////////////////////////////// 5450 // } 5451 // else 5452 $r = $rrr; 5453 5454 return $r ; 5455 } 5456 5457 function filterCheck( $val , $crit ,$fil ) 5458 { 5459 switch ( $fil ) { 5460 case '=' : //Igual 5461 if( $val == $crit ) return true; else return false; break; 5462 case '*' : //Existe 5463 if( strpos( $val , $crit ) !== false ) return true; else return false; break; 5464 case '!*' : //Não existe 5465 if( strpos( $val , $crit ) === false ) return true; else return false; break; 5466 case '^' : //Começa com 5467 if( substr ($val , 0 , strlen($crit) ) == $crit ) return true; else return false; break; 5468 case '$' : //Termina com 5469 if( substr ($val , 0 , -(strlen($crit)) ) == $crit ) return true; else return false; break; 5470 case '>' : //Maior que 5471 if( $val > (int)($crit * 1024) ) return true; else return false; break; 5472 case '<' : //Menor que 5473 if( $val < (int)($crit * 1024) ) return true; else return false; break; 5474 } 5475 } 5476 5477 function apliSieveFilter($msgs , $proc ) 5478 { 5479 $ret = array(); 5480 5481 switch($proc['action']){ 5482 case 'fileintro': 5483 $imap = $this->open_mbox( 'INBOX' ); 5484 foreach( $msgs as $msg ) 5485 if($proc['keep'] === true) 5486 $ret[$msg][] = imap_mail_copy($imap,$msg,$proc['value']); 5487 else 5488 $ret[$msg][] = imap_mail_move($imap,$msg,$proc['value']); 5489 break; 5490 case 'redirect': 5491 foreach($msgs as $msg) 5492 { 5493 $info = $this->get_info_msg(array('msg_folder' => 'INBOX','msg_number' => $msg)); 5494 5495 require_once $_SESSION['rootPath'] . '/API/class.servicelocator.php'; 5496 $mailService = ServiceLocator::getService('mail'); 5497 5498 $ret[$msg][] = $mailService->sendMail( $proc['value'] , $info['from']['full'] , $info['subject'] ,$info['body'] ); 5499 5500 if($proc['keep'] !== true) 5501 $this->delete_msgs(array('msgs_number' => $msg , 'folder' => 'INBOX')); 5502 } 5503 break; 5504 5505 case 'setflag': 5506 foreach($msgs as $msg) 5507 $ret[$msg][] = $this->set_messages_flag( array( 'folder' => 'INBOX' , 'msgs_to_set' => $msg , 'flag' => $proc['value']) ); 5508 5509 break; 5510 } 5511 5512 return $ret; 5513 } 5328 5514 } 5329 5515 ?> -
trunk/expressoMail1_2/index.php
r5533 r5539 386 386 <title>ExpressoMail</title> 387 387 </head> 388 <body scroll="no" style="overflow:hidden" >388 <body scroll="no" style="overflow:hidden" class="expressomail-module-container"> 389 389 <link rel="stylesheet" href="../prototype/modules/attach_message/attach_message.css" type="text/css" /> 390 390 <link rel="stylesheet" href="../prototype/modules/mail/css/label.css" type="text/css" /> … … 394 394 </body> 395 395 </html> 396 <script type="text/javascript" src="../prototype/modules/filters/filters.js"></script> 396 397 <script type="text/javascript">connector.updateVersion = "<?=$update_version?>";</script> 397 398 <!-----Expresso Mail - Version Updated:<?=$update_version?>--------> -
trunk/expressoMail1_2/js/common_functions.js
r5533 r5539 641 641 filters.Forms(); 642 642 } 643 644 645 function filterbox2(){ 646 jQuery('.expresso-window-container').dialog('open'); 647 } 648 643 649 644 650 function sharebox(){ -
trunk/expressoMail1_2/js/doiMenuData.js
r5533 r5539 97 97 "i01": {"name": get_lang("Preferences"), "icon": "preferences-mail", callback: preferences_mail }, 98 98 "i02": {"name": get_lang("Search"), "icon": "search-mail", callback: function(key, opt){ search_emails(""); }}, 99 "103": {"name": get_lang("Edit filters"), "icon": "filter", callback: filterbox },99 "103": {"name": get_lang("Edit filters"), "icon": "filter", callback: filterbox2 }, 100 100 "i04": {"name": get_lang("Edit folders"), "icon": "edit-folder", callback: folderbox }, 101 101 "i05": {"name": get_lang("Share mailbox"), "icon": "share-mailbox", callback: sharebox },
Note: See TracChangeset
for help on using the changeset viewer.