Changeset 325 for trunk/expressoMail1_2/inc/class.imap_functions.inc.php
- Timestamp:
- 06/24/08 16:45:40 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.imap_functions.inc.php
r320 r325 696 696 //Search for emails, then open a new message tab. 697 697 //$body = @ereg_replace('[a-zA-Z0-9!#$%&\'*+/=?^_`{|}~]+@([.]?[a-zA-Z0-9_/-])*', '<a title=\''.$this->functions->getLang("New Message").' -> \\0\'" onclick="Element(\'msg_number\').value=\'\\0\';new_message(\'new\',\'null\')" href="#">\\0</a>',$body); 698 $matches = array();698 //$matches = array(); 699 699 // Verify exception. 700 @preg_match("/<a href=\"notes:\/\/\//",$body,$matches);700 //@preg_match("/<a href=\"notes:\/\/\//",$body,$matches); 701 701 // It no has exception,then open the link in new window. 702 if(!count($matches)){702 /*if(!count($matches)){ 703 703 $body = @eregi_replace("<a (.*) href=", "<a \\1 target='_blank' href=", $body); 704 704 $body = @str_replace("<a href=", "<a target='_blank' href=", $body); 705 705 $body = @eregi_replace("target=\"\"", "target='_blank'", $body); 706 706 $body = @eregi_replace("target=''", "target='_blank'", $body); 707 } 707 }*/ 708 $body = preg_replace('/(?<=[\s|(<br>)|\n|\r|;])((http(s?):\/\/((?:[\w]\.?)+(?::[\d]+)?[\/.\-~&=?%;@#,+\w]*))|((?:www?\.)(?:\w\.?)*(?::\d+)?[\/\w.\-~&=?%;@+]*))/i', '<a href="http$3://$4$5" target="_blank">http$3://$4$5</a>', $body); 708 709 return $body; 709 710 } … … 946 947 if (is_array($folders_list)) { 947 948 reset($folders_list); 949 $ldap = new ldap_functions(); 948 950 949 951 $i = 0; … … 960 962 $result[$i]['folder_name'] = array_pop($tmp_folder_parent); 961 963 $result[$i]['folder_name'] = $result[$i]['folder_name'] == 'INBOX' ? 'Inbox' : $result[$i]['folder_name']; 962 964 if (is_numeric($result[$i]['folder_name'])) { 965 if ($cn = $ldap->uid2cn($result[$i]['folder_name'])){ 966 $result[$i]['folder_name'] = $cn; 967 } 968 } 969 963 970 $tmp_folder_parent = implode($this->imap_delimiter, $tmp_folder_parent); 964 971 $result[$i]['folder_parent'] = $tmp_folder_parent == 'INBOX' ? '' : $tmp_folder_parent; … … 985 992 } 986 993 987 return array_merge($result2, $this->get_quota()); 994 if($mbox_stream) 995 imap_close($mbox_stream); 996 return array_merge($result2); 988 997 } 989 998 … … 1408 1417 'folder' => $folder, 1409 1418 'new_folder_name' => $new_folder_name, 1410 'border_ID' => $params['border_ID']); 1411 1412 // Caso estejamos no box principal, não é necessário pegar a informação da mensagem anterior. 1419 'border_ID' => $params['border_ID'], 1420 'status' => true); //Status foi adicionado para validar as permissoes ACL 1421 1422 //Este bloco tem a finalidade de averiguar as permissoes para pastas compartilhadas 1423 if (substr($folder,0,4) == 'user'){ 1424 $acl = $this->getacltouser($folder); 1425 /* 1426 * l - lookup (mailbox is visible to LIST/LSUB commands) 1427 * r - read (SELECT the mailbox, perform CHECK, FETCH, PARTIAL, SEARCH, COPY from mailbox) 1428 * s - keep seen/unseen information across sessions (STORE SEEN flag) 1429 * w - write (STORE flags other than SEEN and DELETED) 1430 * i - insert (perform APPEND, COPY into mailbox) 1431 * p - post (send mail to submission address for mailbox, not enforced by IMAP4 itself) 1432 * c - create (CREATE new sub-mailboxes in any implementation-defined hierarchy) 1433 * d - delete (STORE DELETED flag, perform EXPUNGE) 1434 * a - administer (perform SETACL) 1435 */ 1436 if (strpos($acl, "d") === false){ 1437 $return['status'] = false; 1438 return $return; 1439 } 1440 } 1441 1442 // Caso estejamos no box principal, nï¿œo ï¿œ necessï¿œrio pegar a informaᅵᅵo da mensagem anterior. 1413 1443 if (($params['get_previous_msg']) && ($params['border_ID'] != 'null') && ($params['border_ID'] != '')) 1414 1444 $return['previous_msg'] = $this->get_info_previous_msg($params); … … 1894 1924 } 1895 1925 1896 function get_quota( ){1897 1926 function get_quota($params){ 1927 $folder_id = $params['folder_id']; 1898 1928 if(!$this->mbox) 1899 1929 $this->mbox = $this->open_mbox(); 1900 1930 1901 $quota = imap_get_quotaroot($this->mbox, "INBOX");1931 $quota = imap_get_quotaroot($this->mbox, $folder_id); 1902 1932 if($this->mbox) 1903 1933 imap_close($this->mbox); … … 1935 1965 $toaddress = $params['notificationto']; 1936 1966 1937 $subject = 'Confirma ção de leitura: ' . $params['subject'];1967 $subject = 'Confirmaᅵᅵo de leitura: ' . $params['subject']; 1938 1968 $body = 'Sua mensagem: ' . $params['subject'] . '<br>'; 1939 1969 $body .= 'foi lida por: ' . $_SESSION['phpgw_info']['expressomail']['user']['fullname'] . ' <' . $_SESSION['phpgw_info']['expressomail']['user']['email'] . '> em ' . date("d/m/Y H:i"); … … 1959 1989 function empty_trash() 1960 1990 { 1961 $folder = 'INBOX' . $this->imap_delimiter . 'Lixeira';1991 $folder = 'INBOX' . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']; 1962 1992 $mbox_stream = $this->open_mbox($folder); 1963 1993 $return = imap_delete($mbox_stream,'1:*'); … … 2068 2098 $before_date = date("m/d/Y", strtotime("-".$params['before_date']." day")); 2069 2099 $criteria = 'BEFORE "'.$before_date.'"'; 2070 $mbox_stream = $this->open_mbox('INBOX'.$this->imap_delimiter. "Lixeira");2100 $mbox_stream = $this->open_mbox('INBOX'.$this->imap_delimiter.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']); 2071 2101 $messages = imap_search($mbox_stream, $criteria, SE_UID); 2072 2102 if (is_array($messages)){ … … 2082 2112 function remove_accents($string) { 2083 2113 return strtr($string, 2084 "? Ó??ó?Ý?úÁÀÃÂÄÇÉÈÊËÍÌ?ÎÏÑÕÔÓÒÖÚÙ?ÛÜ?áàãâäçéèêëíì?îïñóòõôöúù?ûüýÿ",2114 "?ï¿œ??ï¿œ?ï¿œ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵᅵᅵ", 2085 2115 "SOZsozYYuAAAAACEEEEIIIIINOOOOOUUUUUsaaaaaceeeeiiiiinooooouuuuuyy"); 2086 2116 } … … 2287 2317 $return = array(); 2288 2318 $mbox_stream = $this->open_mbox(); 2289 $mbox_acl = imap_getacl($mbox_stream, 'user'.$this->imap_delimiter.$user); 2319 //Alterado, antes era 'imap_getacl($mbox_stream, 'user'.$this->imap_delimiter.$user); 2320 //Afim de tratar as pastas compartilhadas, verificandos as permissoes de operacao sobre as mesmas 2321 //No caso de se tratar da caixa do proprio usuario logado, utiliza a sintaxe abaixo 2322 if(substr($user,0,4) != 'user') 2323 $mbox_acl = imap_getacl($mbox_stream, 'user'.$this->imap_delimiter.$user); 2324 else 2325 $mbox_acl = imap_getacl($mbox_stream, $user); 2290 2326 return $mbox_acl[$this->username]; 2291 2327 } … … 2354 2390 $msg = $header . $body; 2355 2391 $email = $_SESSION['phpgw_info']['expressomail']['user']['email']; 2356 $username = $this->username; 2392 //$tmp_file = $tmp_dir . "msg." . $email . '.'. $msg_number . time(); 2393 // maybe we can get it faster with regex, don't know how :'( 2394 $signature = trim(substr($header, strpos($header, 'X-DSPAM-Signature:') + 18)); 2357 2395 strtok($email, '@'); 2358 2396 $domain = strtok('@'); 2359 2397 2360 //Encontrar a assinatura do dspam no cabecalho2361 $v = explode("\r\n", $header);2362 foreach ($v as $linha){2363 if (eregi("^X-DSPAM-Signature", $linha)) {2364 2365 $args = explode(" ",$linha);2366 $signature = $args[1];2367 }2368 }2369 2370 2398 // feed dspam 2371 switch($is_spam){ 2372 case 'true': $cmd = $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_spam']; break; 2373 case 'false': $cmd = $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_ham']; break; 2374 } 2375 $tags = array('##EMAIL##', '##USERNAME##', '##DOMAIN##', '##SIGNATURE##'); 2376 $cmd = str_replace($tags,array($email,$username,$domain,$signature),$cmd); 2399 if ($is_spam) 2400 $cmd = str_replace( 2401 array('##EMAIL##', '##USERNAME##', '##DOMAIN##', '##SIGNATURE##'), 2402 array($email, $this->username, $domain, $signature), $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_spam'] 2403 ); 2404 else 2405 $cmd = str_replace( 2406 array('##EMAIL##', '##USERNAME##', '##DOMAIN##', '##SIGNATURE##'), 2407 array($email, $this->username, $domain, $signature), $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_ham'] 2408 ); 2409 2377 2410 system($cmd); 2411 2378 2412 } 2379 2413 imap_close($mbox_stream);
Note: See TracChangeset
for help on using the changeset viewer.