Changeset 2480
- Timestamp:
- 04/12/10 11:11:54 (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/controller.php
r2459 r2480 9 9 * Free Software Foundation; either version 2 of the License, or (at your * 10 10 * option) any later version. * 11 \**************************************************************************/ 11 \**************************************************************************/ 12 sleep(3); 12 13 if(!isset($GLOBALS['phpgw_info'])){ 13 14 $GLOBALS['phpgw_info']['flags'] = array( … … 104 105 echo serialize($result); 105 106 else 107 { 108 @session_start(); 106 109 $_SESSION['response'] = $result; 110 } 107 111 ?> -
trunk/expressoMail1_2/inc/class.imap_functions.inc.php
r2450 r2480 29 29 var $ldap; 30 30 var $mbox; 31 var $imap_port; 31 var $email_server; 32 var $cert; 33 var $preferences; 32 34 var $has_cid; 33 35 var $imap_options = ''; … … 38 40 function imap_functions (){ 39 41 $this->foldersLimit = $_SESSION['phpgw_info']['expressomail']['max_folders_to_show']; //Limit of folders (mailboxes) user can see 40 $this->username = $_SESSION['phpgw_info']['expressomail']['user']['userid']; 41 $this->password = $_SESSION['phpgw_info']['expressomail']['user']['passwd']; 42 $this->imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer']; 43 $this->imap_port = $_SESSION['phpgw_info']['expressomail']['email_server']['imapPort']; 44 $this->imap_delimiter = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter']; 42 $this->email_server = $_SESSION['phpgw_info']['expressomail']['email_server']; 43 $this->cert = $_SESSION['phpgw_info']['expressomail']['server']['certificado']; 44 $this->server_files_dir = $_SESSION['phpgw_info']['expressomail']['server']['files_dir']; 45 46 $this->username = $_SESSION['phpgw_info']['expressomail']['user']['userid']; 47 $this->password = $_SESSION['phpgw_info']['expressomail']['user']['passwd']; 48 $this->account_id = $_SESSION['phpgw_info']['expressomail']['user']['account_id']; 49 $this->email = $_SESSION['phpgw_info']['expressomail']['user']['email']; 50 $this->fullname = $_SESSION['phpgw_info']['expressomail']['user']['fullname']; 51 $this->lang = $_SESSION['phpgw_info']['expressomail']['user']['preferences']['common']['lang']; 52 $this->session_ip = $_SESSION['phpgw_info']['expressomail']['user']['session_ip']; 53 $this->shared_mailboxes = $_SESSION['phpgw_info']['expressomail']['user']['shared_mailboxes']; 54 55 $this->command_for_ham = $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_ham']; 56 $this->command_for_spam = $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_spam']; 57 $this->enable_log_messages = $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_enable_log_messages']; 58 59 $this->preferences = $_SESSION['phpgw_info']['user']['preferences']['expressoMail']; 60 $this->session_id = $_SESSION[ 'phpgw_session' ][ 'session_id' ]; 61 62 session_write_close(); 63 45 64 $this->functions = new functions(); 46 $this->imap_sentfolder = $ _SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'] ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']: str_replace("*","", $this->functions->getLang("Sent"));65 $this->imap_sentfolder = $this->email_server['imapDefaultSentFolder'] ? $this->email_server['imapDefaultSentFolder'] : str_replace("*","", $this->functions->getLang("Sent")); 47 66 $this->has_cid = false; 48 67 49 if ($ _SESSION['phpgw_info']['expressomail']['email_server']['imapTLSEncryption'] == 'yes')68 if ($this->email_server['imapTLSEncryption'] == 'yes') 50 69 { 51 70 $this->imap_options = '/tls/novalidate-cert'; … … 62 81 return $this->mbox; 63 82 $folder = mb_convert_encoding($folder, "UTF7-IMAP","ISO_8859-1"); 64 $this->mbox = @imap_open("{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}".$folder, $this->username, $this->password) or die(serialize(array('imap_error' => $this->parse_error(imap_last_error()))));83 $this->mbox = @imap_open("{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}".$folder, $this->username, $this->password) or die(serialize(array('imap_error' => $this->parse_error(imap_last_error())))); 65 84 return $this->mbox; 66 85 } … … 73 92 // This error is returned from Postfix. 74 93 elseif(strstr($error,'message file too big')) { 75 return str_replace("%1",$ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['max_attachment_size'],$this->functions->getLang('The size of this message has exceeded the limit (%1B).'));94 return str_replace("%1",$this->preferences->max_attachment_size,$this->functions->getLang('The size of this message has exceeded the limit (%1B).')); 76 95 } 77 96 elseif(strstr($error,'virus')) { … … 79 98 } 80 99 // This condition verifies if SESSION is expired. 81 elseif(!count( $_SESSION))100 elseif(!count( $this->email_server )) 82 101 return "nosession"; 83 102 … … 87 106 function get_range_msgs2($params) 88 107 { 89 // Free others requests90 session_write_close();91 92 108 $folder = $params['folder']; 93 109 $msg_range_begin = $params['msg_range_begin']; … … 251 267 { 252 268 // PLEASE, BE CAREFULL!!! YOU SHOULD USE EMAIL CONFIGURATION VALUES (EMAILADMIN MODULE) 253 $tmp_box = mb_convert_encoding('INBOX'.$this-> imap_delimiter.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder'].$this->imap_delimiter.'tmpMoveToLocal', "UTF7-IMAP", "UTF-8");269 $tmp_box = mb_convert_encoding('INBOX'.$this->email_server['imapDelimiter'].$this->email_server['imapDefaultTrashFolder'].$this->email_server['imapDelimiter'].'tmpMoveToLocal', "UTF7-IMAP", "UTF-8"); 254 270 if ( ! imap_createmailbox( $this -> mbox,"{".$this -> imap_server."}$tmp_box" ) ) 255 271 return $this->functions->getLang( 'Import to Local : fail...' ); 256 imap_reopen($this->mbox, "{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}".$tmp_box);272 imap_reopen($this->mbox, "{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}".$tmp_box); 257 273 $params["folder"] = $tmp_box; 258 274 } … … 275 291 $email = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); 276 292 $status = @imap_append($this->mbox, 277 "{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"],293 "{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}".$params["folder"], 278 294 $email 279 295 ); … … 303 319 $email = implode("",file($params['FILES'][0]['tmp_name'])); 304 320 $status = @imap_append($this->mbox, 305 "{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"],321 "{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}".$params["folder"], 306 322 $email 307 323 ); … … 360 376 361 377 $status = imap_append($this->mbox, 362 "{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"],378 "{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}".$params["folder"], 363 379 $header. 364 380 "\r\n". … … 376 392 else 377 393 { 378 $status = imap_status($this->mbox, "{".$this-> imap_server.":".$this->imap_port."}".$params['folder'], SA_UIDNEXT);394 $status = imap_status($this->mbox, "{".$this->email_server['imapServer'].":".$this->email_server['imapPort']."}".$params['folder'], SA_UIDNEXT); 379 395 $return['msg_no'] = $status->uidnext - 1; 380 396 imap_delete($this->mbox, imap_msgno($this->mbox, $params["msg_num"])); … … 734 750 //All this is to help in local messages 735 751 $return['timestamp'] = $header->udate_original; 736 $return['login'] = $ _SESSION['phpgw_info']['expressomail']['user']['account_id'];//$GLOBALS['phpgw_info']['user']['account_id'];752 $return['login'] = $this->account_id; 737 753 $return['reply_toaddress'] = $header->reply_toaddress; 738 754 return $return; … … 748 764 $return = ""; 749 765 750 if( (isset($ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['preview_msg_subject']) && ($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['preview_msg_subject'] == "0")) && (isset($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['preview_msg_tip']) && ($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['preview_msg_tip']== "0")) )766 if( (isset($this->preferences->preview_msg_subject) && ($this->preferences->preview_msg_subject == "0")) && (isset($this->preferences->preview_msg_tip) && ($this->preferences->preview_msg_tip == "0")) ) 751 767 { 752 768 $return['body'] = ""; … … 1451 1467 1452 1468 //$mbox_stream = $this->open_mbox($folder); 1453 $mbox_stream = @imap_open("{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}".$folder, $this->username, $this->password) or die(serialize(array('imap_error' => $this->parse_error(imap_last_error()))));1469 $mbox_stream = @imap_open("{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}".$folder, $this->username, $this->password) or die(serialize(array('imap_error' => $this->parse_error(imap_last_error())))); 1454 1470 1455 1471 foreach ($msgs_number as $msg_number) … … 1470 1486 function refresh($params) 1471 1487 { 1472 session_write_close();1473 1488 include_once("class.imap_attachment.inc.php"); 1474 1489 $imap_attachment = new imap_attachment(); … … 1634 1649 { 1635 1650 $inbox = 'INBOX'; 1636 $trash = $inbox . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']; 1637 $drafts = $inbox . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder']; 1638 $spam = $inbox . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']; 1639 $sent = $inbox . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']; 1640 $uid2cn = $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['uid2cn']; 1641 // Free others requests 1642 session_write_close(); 1651 $trash = $inbox . $this->email_server['imapDelimiter ']. $this->email_server['imapDefaultTrashFolder;']; 1652 $drafts = $inbox . $this->email_server['imapDelimiter ']. $this->email_server['imapDefaultDraftsFolder']; 1653 $spam = $inbox . $this->email_server['imapDelimiter ']. $this->email_server['imapDefaultSpamFolder']; 1654 $sent = $inbox . $this->email_server['imapDelimiter ']. $this->email_server['imapDefaultSentFolder']; 1655 $uid2cn = $this->preferences->uid2cn; 1643 1656 1644 1657 if(!$this->mbox || !is_resource($this->mbox)) 1645 1658 $this->mbox = $this->open_mbox(); 1646 1659 1647 if($params && $params['onload'] && $ _SESSION['phpgw_info']['expressomail']['server']['certificado']){1660 if($params && $params['onload'] && $this->cert){ 1648 1661 $this->delete_mailbox(array("del_past" => "INBOX/decifradas")); 1649 1662 } 1650 1663 1651 $serverString = "{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}";1664 $serverString = "{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}"; 1652 1665 $folders_list = imap_getmailboxes($this->mbox, $serverString, ($params && $params['noSharedFolders']) ? "INBOX/*" : "*"); 1653 1666 $folders_list = array_slice($folders_list,0,$this->foldersLimit); … … 1667 1680 //$tmp_folder_id = explode("}", imap_utf7_decode($val->name)); 1668 1681 $tmp_folder_id = explode("}", mb_convert_encoding($val->name, "ISO_8859-1", "UTF7-IMAP" )); 1669 if($tmp_folder_id[1]=='INBOX'.$this-> imap_delimiter.'decifradas') {1682 if($tmp_folder_id[1]=='INBOX'.$this->email_server['imapDelimiter'].'decifradas') { 1670 1683 //error_log('passou', 3,'/tmp/imap_get_list.log'); 1671 //imap_deletemailbox($this->mbox, imap_utf7_encode("{".$this-> imap_server."}".'INBOX/decifradas'));1684 //imap_deletemailbox($this->mbox, imap_utf7_encode("{".$this->email_server['imapServer']."}".'INBOX/decifradas')); 1672 1685 continue; 1673 1686 } … … 1676 1689 $result[$i]['folder_id'] = $folder_id; 1677 1690 1678 $tmp_folder_parent = explode($this-> imap_delimiter, $folder_id);1691 $tmp_folder_parent = explode($this->email_server['imapDelimiter'], $folder_id); 1679 1692 $result[$i]['folder_name'] = array_pop($tmp_folder_parent); 1680 1693 $result[$i]['folder_name'] = $result[$i]['folder_name'] == 'INBOX' ? 'Inbox' : $result[$i]['folder_name']; … … 1686 1699 } 1687 1700 1688 $tmp_folder_parent = implode($this-> imap_delimiter, $tmp_folder_parent);1701 $tmp_folder_parent = implode($this->email_server['imapDelimiter'], $tmp_folder_parent); 1689 1702 $result[$i]['folder_parent'] = $tmp_folder_parent == 'INBOX' ? '' : $tmp_folder_parent; 1690 1703 … … 1759 1772 $namebox = $arr['newp']; 1760 1773 $mbox_stream = $this->open_mbox(); 1761 $imap_server = $ _SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];1774 $imap_server = $this->email_server['imapServer']; 1762 1775 $namebox = mb_convert_encoding($namebox, "UTF7-IMAP", "UTF-8"); 1763 1776 … … 1780 1793 $result = ""; 1781 1794 $mbox_stream = $this->open_mbox(); 1782 $imap_server = $ _SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];1795 $imap_server = $this->email_server['imapServer']; 1783 1796 foreach($nameboxs as $key=>$tmp){ 1784 1797 if($tmp != ""){ … … 1799 1812 { 1800 1813 $namebox = $arr['del_past']; 1801 $imap_server = $ _SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];1814 $imap_server = $this->email_server['imapServer']; 1802 1815 $mbox_stream = $this->mbox ? $this->mbox : $this->open_mbox(); 1803 1816 //$del_folder = imap_deletemailbox($mbox_stream,"{".$imap_server."}INBOX.$namebox"); … … 1820 1833 $namebox = $arr['current']; 1821 1834 $new_box = $arr['rename']; 1822 $imap_server = $ _SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];1835 $imap_server = $this->email_server['imapServer']; 1823 1836 $mbox_stream = $this->open_mbox(); 1824 1837 //$ren_folder = imap_renamemailbox($mbox_stream,"{".$imap_server."}INBOX.$namebox","{".$imap_server."}INBOX.$new_box"); … … 1860 1873 function folder_exists($folder){ 1861 1874 $mbox = $this->open_mbox(); 1862 $serverString = "{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}";1875 $serverString = "{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}"; 1863 1876 $list = imap_getmailboxes($mbox,$serverString, $folder); 1864 1877 $return = is_array($list); … … 1872 1885 $mail = new PHPMailer(); 1873 1886 // Set lang for PHPMailer using user prefs. 1874 list($prefix,$userlang) = explode('-',$ _SESSION['phpgw_info']['expressomail']['user']['preferences']['common']['lang']);1887 list($prefix,$userlang) = explode('-',$this->lang); 1875 1888 $mail->SetLanguage($userlang,dirname( __FILE__ )."/../setup/"); 1876 1889 include_once("class.db_functions.inc.php"); … … 1882 1895 # @BRIEF Checks if the user has permission to send an email with the email address used. 1883 1896 ## 1884 if ( is_array($fromaddress) && ($fromaddress[1] != $ _SESSION['phpgw_info']['expressomail']['user']['email']) )1897 if ( is_array($fromaddress) && ($fromaddress[1] != $this->email) ) 1885 1898 { 1886 1899 $deny = true; 1887 foreach( $ _SESSION['phpgw_info']['expressomail']['user']['shared_mailboxes']as $key => $val )1900 foreach( $this->shared_mailboxes as $key => $val ) 1888 1901 if ( array_key_exists('mail', $val) && $val['mail'][0] == $fromaddress[1] ) 1889 $deny = false and end($ _SESSION['phpgw_info']['expressomail']['user']['shared_mailboxes']);1902 $deny = false and end($this->shared_mailboxes); 1890 1903 1891 1904 if ( $deny ) … … 1951 1964 if( $fromaddress[2] == 'y' ){ 1952 1965 //build shared folder path 1953 $newfolder = "user".$this-> imap_delimiter.$fromaddress[3].$this->imap_delimiter.$this->imap_sentfolder;1966 $newfolder = "user".$this->email_server['imapDelimiter'].$fromaddress[3].$this->email_server['imapDelimiter'].$this->imap_sentfolder; 1954 1967 if( $this->folder_exists($newfolder) ) $folder = $newfolder; 1955 1968 else $folder = $params['folder']; … … 1962 1975 // Fix problem with cyrus delimiter changes. 1963 1976 // Dots in names: enabled/disabled. 1964 $folder = @eregi_replace("INBOX/", "INBOX".$this-> imap_delimiter, $folder);1965 $folder = @eregi_replace("INBOX.", "INBOX".$this-> imap_delimiter, $folder);1977 $folder = @eregi_replace("INBOX/", "INBOX".$this->email_server['imapDelimiter'], $folder); 1978 $folder = @eregi_replace("INBOX.", "INBOX".$this->email_server['imapDelimiter'], $folder); 1966 1979 // End Fix. 1967 1980 if ($folder != 'null'){ … … 1979 1992 $mail->IsSMTP(); 1980 1993 1981 $mail->Host = $ _SESSION['phpgw_info']['expressomail']['email_server']['smtpServer'];1982 $mail->Port = $ _SESSION['phpgw_info']['expressomail']['email_server']['smtpPort'];1983 $mail->From = $ _SESSION['phpgw_info']['expressomail']['user']['email'];1984 $mail->FromName = $ _SESSION['phpgw_info']['expressomail']['user']['fullname'];1994 $mail->Host = $this->email_server['smtpServer']; 1995 $mail->Port = $this->email_server['smtpPort']; 1996 $mail->From = $this->email; 1997 $mail->FromName = $this->fullname; 1985 1998 if($fromaddress){ 1986 1999 $mail->Sender = $mail->From; … … 2006 2019 // Se uma das verificacoes falhar, nao enviar o e-mail e avisar o usuario. 2007 2020 // O array $mail->Certs_crypt soh deve ser preenchido se os certificados passarem nas verificacoes. 2008 $numero_maximo = $ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['num_max_certs_to_cipher']; // Este valor dever ser configurado pelo administrador do site ....2021 $numero_maximo = $this->preferences->num_max_certs_to_cipher; // Este valor dever ser configurado pelo administrador do site .... 2009 2022 $erros_acumulados = ""; 2010 2023 $aux_mails = array(); … … 2016 2029 } 2017 2030 // adiciona o email do remetente. eh para cifrar a msg para ele tambem. Assim vai poder visualizar a msg na pasta enviados.. 2018 $email[] = $ _SESSION['phpgw_info']['expressomail']['user']['email'];2031 $email[] = $this->email; 2019 2032 foreach($email as $item) 2020 2033 { … … 2126 2139 } 2127 2140 $tempDir = ini_get("session.save_path"); 2128 $file = "cidimage_".$ _SESSION[ 'phpgw_session' ][ 'session_id' ].$cid_imgs[6][$j].".dat";2141 $file = "cidimage_".$this->session_id.$cid_imgs[6][$j].".dat"; 2129 2142 $f = fopen($tempDir.'/'.$file,"w"); 2130 2143 fputs($f,$fileContent); … … 2141 2154 { 2142 2155 $total_uploaded_size = 0; 2143 $upload_max_filesize = str_replace("M","",$ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['max_attachment_size']) * 1024 * 1024;2156 $upload_max_filesize = str_replace("M","",$this->preferences->max_attachment_size) * 1024 * 1024; 2144 2157 foreach ($attachments as $attach) 2145 2158 { … … 2200 2213 // Disposition-Notification-To 2201 2214 if ($return_receipt) 2202 $mail->ConfirmReadingTo = $ _SESSION['phpgw_info']['expressomail']['user']['email'];2215 $mail->ConfirmReadingTo = $this->email; 2203 2216 //////////////////////////////////////////////////////////////////////////////////////////////////// 2204 2217 … … 2215 2228 return $sent; 2216 2229 } 2217 if($ _SESSION['phpgw_info']['server']['expressomail']['expressoMail_enable_log_messages']== "True")2230 if($this->enable_log_messages == "True") 2218 2231 { 2219 $userid = $ _SESSION['phpgw_info']['expressomail']['user']['userid'];2220 $userip = $ _SESSION['phpgw_info']['expressomail']['user']['session_ip'];2232 $userid = $this->username; 2233 $userip = $this->session_ip; 2221 2234 $now = date("d/m/y H:i:s"); 2222 2235 $addrs = $toaddress.$ccaddress.$ccoaddress; … … 2224 2237 error_log("$now - $userip - $sent [$subject] - $userid => $addrs\r\n", 3, "/home/expressolivre/mail_senders.log"); 2225 2238 } 2226 if($ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['number_of_contacts']&&2227 $ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_dynamic_contacts']) {2239 if($this->preferences->number_of_contacts && 2240 $this->preferences->use_dynamic_contacts) { 2228 2241 $contacts = new dynamic_contacts(); 2229 2242 $new_contacts = $contacts->add_dynamic_contacts($toaddress.",".$ccaddress.",".$ccoaddress); … … 2369 2382 2370 2383 if($sort_box_type=='SORTFROM') { 2371 if (($header->from[0]->mailbox . "@" . $header->from[0]->host) == $ _SESSION['phpgw_info']['expressomail']['user']['email'])2384 if (($header->from[0]->mailbox . "@" . $header->from[0]->host) == $this->email) 2372 2385 $from = $header->to; 2373 2386 else … … 2457 2470 'status' => true); //Status foi adicionado para validar as permissoes ACL 2458 2471 2459 $error_log_file=$ _SESSION['phpgw_info']['expressomail']['server']['files_dir']."/expressoMail.log";2460 if($ _SESSION['phpgw_info']['server']['expressomail']['expressoMail_enable_log_messages']== "True" &&2472 $error_log_file=$this->server_files_dir."/expressoMail.log"; 2473 if($this->enable_log_messages == "True" && 2461 2474 strpos($msgs_number,',') != False) 2462 2475 error_log(date("D M j G:i:s T Y").": expressoMail, move_messages: " 2463 .$ _SESSION['phpgw_info']['expressomail']['user']['userid']." ".$folder."=>".$new_folder_name.2476 .$this->username." ".$folder."=>".$new_folder_name. 2464 2477 " ".$msgs_number."\n", 3, $error_log_file); 2465 2478 … … 2484 2497 } 2485 2498 //Este bloco tem a finalidade de transformar o CPF das pastas compartilhadas em common name 2486 if ($ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['uid2cn']){2499 if ($this->preferences->uid2cn){ 2487 2500 if (substr($new_folder_name,0,4) == 'user'){ 2488 2501 $this->ldap = new ldap_functions(); 2489 $tmp_folder_name = explode($this-> imap_delimiter, $new_folder_name);2502 $tmp_folder_name = explode($this->email_server['imapDelimiter'], $new_folder_name); 2490 2503 $return['new_folder_name'] = array_pop($tmp_folder_name); 2491 2504 if( $cn = $this->ldap->uid2cn($return['new_folder_name'])) … … 2512 2525 }else { 2513 2526 if(strstr(imap_last_error(),'Over quota')) { 2514 $accountID = $ _SESSION['phpgw_info']['expressomail']['email_server']['imapAdminUsername'];2515 $pass = $ _SESSION['phpgw_info']['expressomail']['email_server']['imapAdminPW'];2516 $userID = $ _SESSION['phpgw_info']['expressomail']['user']['userid'];2517 $server = $ _SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];2518 $mbox = @imap_open("{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}INBOX", $accountID, $pass) or die(serialize(array('imap_error' => $this->parse_error(imap_last_error()))));2527 $accountID = $this->email_server['imapAdminUsername']; 2528 $pass = $this->email_server['imapAdminPW']; 2529 $userID = $this->username; 2530 $server = $this->email_server['imapServer']; 2531 $mbox = @imap_open("{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}INBOX", $accountID, $pass) or die(serialize(array('imap_error' => $this->parse_error(imap_last_error())))); 2519 2532 if(!$mbox) 2520 2533 return imap_last_error(); 2521 2534 $quota = imap_get_quotaroot($mbox_stream, "INBOX"); 2522 if(! imap_set_quota($mbox, "user".$this-> imap_delimiter.$userID, 2.1 * $quota['usage'])) {2535 if(! imap_set_quota($mbox, "user".$this->email_server['imapDelimiter'].$userID, 2.1 * $quota['usage'])) { 2523 2536 if($mbox_stream) 2524 2537 imap_close($mbox_stream); 2525 2538 if($mbox) 2526 2539 imap_close($mbox); 2527 return "move_messages(): Error setting quota for MOVE or DELETE!! ". "user".$this-> imap_delimiter.$userID." line ".__LINE__."\n";2540 return "move_messages(): Error setting quota for MOVE or DELETE!! ". "user".$this->email_server['imapDelimiter'].$userID." line ".__LINE__."\n"; 2528 2541 } 2529 2542 if(imap_mail_move($mbox_stream, $msgs_number, $newmailbox, CP_UID)) { … … 2532 2545 imap_close($mbox_stream); 2533 2546 // return to original quota limit. 2534 if(!imap_set_quota($mbox, "user".$this-> imap_delimiter.$userID, $quota['limit'])) {2547 if(!imap_set_quota($mbox, "user".$this->email_server['imapDelimiter'].$userID, $quota['limit'])) { 2535 2548 if($mbox) 2536 2549 imap_close($mbox); … … 2542 2555 if($mbox_stream) 2543 2556 imap_close($mbox_stream); 2544 if(!imap_set_quota($mbox, "user".$this-> imap_delimiter.$userID, $quota['limit'])) {2557 if(!imap_set_quota($mbox, "user".$this->email_server['imapDelimiter'].$userID, $quota['limit'])) { 2545 2558 if($mbox) 2546 2559 imap_close($mbox); … … 2565 2578 $mail = new PHPMailer(); 2566 2579 // Set lang for PHPMailer using user prefs. 2567 list($prefix,$userlang) = explode('-',$ _SESSION['phpgw_info']['expressomail']['user']['preferences']['common']['lang']);2580 list($prefix,$userlang) = explode('-',$this->lang); 2568 2581 $mail->SetLanguage($userlang,dirname( __FILE__ )."/../setup/"); 2569 2582 include_once("class.db_functions.inc.php"); … … 2585 2598 // Fix problem with cyrus delimiter changes. 2586 2599 // Dots in names: enabled/disabled. 2587 $folder = @eregi_replace("INBOX/", "INBOX".$this-> imap_delimiter, $folder);2588 $folder = @eregi_replace("INBOX.", "INBOX".$this-> imap_delimiter, $folder);2600 $folder = @eregi_replace("INBOX/", "INBOX".$this->email_server['imapDelimiter'], $folder); 2601 $folder = @eregi_replace("INBOX.", "INBOX".$this->email_server['imapDelimiter'], $folder); 2589 2602 // End Fix. 2590 2603 if(strtoupper($folder) == 'INBOX/DRAFTS') … … 2596 2609 2597 2610 $mail->IsSMTP(); 2598 $mail->Host = $ _SESSION['phpgw_info']['expressomail']['email_server']['smtpServer'];2599 $mail->Port = $ _SESSION['phpgw_info']['expressomail']['email_server']['smtpPort'];2600 $mail->From = $ _SESSION['phpgw_info']['expressomail']['user']['email'];2601 $mail->FromName = $ _SESSION['phpgw_info']['expressomail']['user']['fullname'];2611 $mail->Host = $this->email_server['smtpServer']; 2612 $mail->Port = $this->email_server['smtpPort']; 2613 $mail->From = $this->email; 2614 $mail->FromName = $this->fullname; 2602 2615 2603 2616 $mail->Sender = $mail->From; 2604 2617 $mail->SenderName = $mail->FromName; 2605 $mail->FromName = $_SESSION['phpgw_info']['expressomail']['user']['fullname']; 2606 $mail->From = $_SESSION['phpgw_info']['expressomail']['user']['email']; 2607 $session_id = $_SESSION[ 'phpgw_session' ][ 'session_id' ]; 2608 $max_resolution = $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['image_size']; 2609 2610 // Free others requests 2611 session_write_close(); 2618 $mail->FromName = $this->fullname; 2619 $mail->From = $this->email; 2620 $session_id = $this->session_id; 2621 $max_resolution = $this->preferences->image_size; 2612 2622 2613 2623 $this->add_recipients("to", $toaddress, &$mail); … … 2764 2774 $new_header = str_replace("\n", "\r\n", $header); 2765 2775 $new_body = str_replace("\n", "\r\n", $body); 2766 $return['append'] = imap_append($mbox_stream, "{".$this-> imap_server.":".$this->imap_port."}".$folder, $new_header . $new_body, "\\Seen \\Draft");2767 $status = imap_status($mbox_stream, "{".$this-> imap_server.":".$this->imap_port."}".$folder, SA_UIDNEXT);2776 $return['append'] = imap_append($mbox_stream, "{".$this->email_server['imapServer'].":".$this->email_server['imapPort']."}".$folder, $new_header . $new_body, "\\Seen \\Draft"); 2777 $status = imap_status($mbox_stream, "{".$this->email_server['imapServer'].":".$this->email_server['imapPort']."}".$folder, SA_UIDNEXT); 2768 2778 $return['msg_no'] = $status->uidnext - 1; 2769 2779 $return['folder_id'] = $folder; … … 2790 2800 $return['append'] = imap_last_error(); 2791 2801 2792 session_start();2793 2802 return $return; 2794 2803 } … … 2826 2835 imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number)) 2827 2836 ,$importance); 2828 if(strtolower($importance[1])=="high" && $ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_important_flag']) {2837 if(strtolower($importance[1])=="high" && $this->preferences->use_important_flag) { 2829 2838 $flag_importance=true; 2830 2839 } … … 2842 2851 } 2843 2852 2844 if($flag_importance && $ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_important_flag']) {2853 if($flag_importance && $this->preferences->use_important_flag) { 2845 2854 $return["status"] = false; 2846 2855 $return["msg"] = $this->functions->getLang("At least one of selected message cant be marked as normal"); … … 3034 3043 function get_quota($params){ 3035 3044 // folder_id = user/{uid} for shared folders 3036 if(substr($params['folder_id'],0,5) != 'INBOX' && preg_match('/user\\'.$this-> imap_delimiter.'/i', $params['folder_id'])){3037 $array_folder = explode($this-> imap_delimiter,$params['folder_id']);3038 $folder_id = "user".$this-> imap_delimiter.$array_folder[1];3045 if(substr($params['folder_id'],0,5) != 'INBOX' && preg_match('/user\\'.$this->email_server['imapDelimiter'].'/i', $params['folder_id'])){ 3046 $array_folder = explode($this->email_server['imapDelimiter'],$params['folder_id']); 3047 $folder_id = "user".$this->email_server['imapDelimiter'].$array_folder[1]; 3039 3048 } 3040 3049 // folder_id = INBOX for inbox folders … … 3083 3092 $mail = new PHPMailer(); 3084 3093 // Set lang for PHPMailer using user prefs. 3085 list($prefix,$userlang) = explode('-',$ _SESSION['phpgw_info']['expressomail']['user']['preferences']['common']['lang']);3094 list($prefix,$userlang) = explode('-',$this->lang); 3086 3095 $mail->SetLanguage($userlang,dirname( __FILE__ )."/../setup/"); 3087 3096 … … 3090 3099 $subject = 'Confirmação de leitura: ' . $params['subject']; 3091 3100 $body = 'Sua mensagem: ' . $params['subject'] . '<br>'; 3092 $body .= 'foi lida por: ' . $ _SESSION['phpgw_info']['expressomail']['user']['fullname'] . ' <' . $_SESSION['phpgw_info']['expressomail']['user']['email']. '> em ' . date("d/m/Y H:i");3101 $body .= 'foi lida por: ' . $this->fullname . ' <' . $this->email . '> em ' . date("d/m/Y H:i"); 3093 3102 $mail->SMTPDebug = false; 3094 3103 $mail->IsSMTP(); 3095 $mail->Host = $ _SESSION['phpgw_info']['expressomail']['email_server']['smtpServer'];3096 $mail->Port = $ _SESSION['phpgw_info']['expressomail']['email_server']['smtpPort'];3097 $mail->From = $ _SESSION['phpgw_info']['expressomail']['user']['email'];3098 $mail->FromName = $ _SESSION['phpgw_info']['expressomail']['user']['fullname'];3104 $mail->Host = $this->email_server['smtpServer']; 3105 $mail->Port = $this->email_server['smtpPort']; 3106 $mail->From = $this->email; 3107 $mail->FromName = $this->fullname; 3099 3108 $mail->AddAddress($toaddress); 3100 3109 $mail->Subject = $this->htmlspecialchars_decode($subject); … … 3112 3121 function empty_folder($params) 3113 3122 { 3114 $folder = 'INBOX' . $this-> imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server'][$params['clean_folder']];3123 $folder = 'INBOX' . $this->email_server['imapDelimiter ']. $this->email_server[$params['clean_folder']]; 3115 3124 $mbox_stream = $this->open_mbox($folder); 3116 3125 $return = imap_delete($mbox_stream,'1:*'); … … 3267 3276 $before_date = date("m/d/Y", strtotime("-".$params['before_date']." day")); 3268 3277 $criteria = 'BEFORE "'.$before_date.'"'; 3269 $trash_folder = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']; 3270 // Free others requests 3271 session_write_close(); 3272 3273 $mbox_stream = $this->open_mbox('INBOX'.$this->imap_delimiter.$trash_folder); 3274 3275 // Free others requests 3276 session_write_close(); 3278 $trash_folder = $this->email_server['imapDefaultTrashFolder']; 3279 3280 $mbox_stream = $this->open_mbox('INBOX'.$this->email_server['imapDelimiter'].$trash_folder); 3277 3281 3278 3282 $messages = imap_search($mbox_stream, $criteria, SE_UID); … … 3330 3334 if($search){ 3331 3335 $search_criteria = ''; 3332 $search_result_number = $ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['search_result_number'];3336 $search_result_number = $this->preferences->search_result_number; 3333 3337 foreach($search as $tmp) 3334 3338 { … … 3360 3364 $filter = $this->remove_accents($filter); 3361 3365 //Este bloco tem a finalidade de transformar o login (quando numerico) das pastas compartilhadas em common name 3362 if ($ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['uid2cn']&& substr($name_box,0,4) == 'user')3366 if ($this->preferences->uid2cn && substr($name_box,0,4) == 'user') 3363 3367 { 3364 $folder_name = explode($this-> imap_delimiter,$name_box);3368 $folder_name = explode($this->email_server['imapDelimiter'],$name_box); 3365 3369 $this->ldap = new ldap_functions(); 3366 3370 if ($cn = $this->ldap->uid2cn($folder_name[1])) … … 3368 3372 $folder_name[1] = $cn; 3369 3373 } 3370 $folder_name = implode($this-> imap_delimiter,$folder_name);3374 $folder_name = implode($this->email_server['imapDelimiter'],$folder_name); 3371 3375 } 3372 3376 else … … 3381 3385 else 3382 3386 { 3383 imap_reopen($mbox_stream, "{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}".$name_box);3387 imap_reopen($mbox_stream, "{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}".$name_box); 3384 3388 } 3385 3389 … … 3545 3549 $mbox_stream = $this->open_mbox(); 3546 3550 3547 $serverString = "{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}";3548 $mailboxes_list = imap_getmailboxes($mbox_stream, $serverString, "user".$this-> imap_delimiter.$this->username."*");3551 $serverString = "{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}"; 3552 $mailboxes_list = imap_getmailboxes($mbox_stream, $serverString, "user".$this->email_server['imapDelimiter'].$this->username."*"); 3549 3553 3550 3554 /*if (count($add_share)) … … 3604 3608 $return = array(); 3605 3609 $mbox_stream = $this->open_mbox(); 3606 //Alterado, antes era 'imap_getacl($mbox_stream, 'user'.$this-> imap_delimiter.$user);3610 //Alterado, antes era 'imap_getacl($mbox_stream, 'user'.$this->email_server['imapDelimiter'].$user); 3607 3611 //Afim de tratar as pastas compartilhadas, verificandos as permissoes de operacao sobre as mesmas 3608 3612 //No caso de se tratar da caixa do proprio usuario logado, utiliza a sintaxe abaixo 3609 3613 if(substr($user,0,4) != 'user') 3610 $mbox_acl = imap_getacl($mbox_stream, 'user'.$this-> imap_delimiter.$user);3614 $mbox_acl = imap_getacl($mbox_stream, 'user'.$this->email_server['imapDelimiter'].$user); 3611 3615 else 3612 3616 $mbox_acl = imap_getacl($mbox_stream, $user); … … 3622 3626 $mbox_stream = $this->open_mbox(); 3623 3627 3624 $serverString = "{".$this-> imap_server.":".$this->imap_port.$this->imap_options."}";3625 $mailboxes_list = imap_getmailboxes($mbox_stream, $serverString, "user".$this-> imap_delimiter.$this->username."*");3628 $serverString = "{".$this->email_server['imapServer'].":".$this->email_server['imapPort'].$this->imap_options."}"; 3629 $mailboxes_list = imap_getmailboxes($mbox_stream, $serverString, "user".$this->email_server['imapDelimiter'].$this->username."*"); 3626 3630 3627 3631 if (is_array($mailboxes_list)) … … 3680 3684 $body = imap_body($mbox_stream, $imap_msg_number); 3681 3685 $msg = $header . $body; 3682 $email = $ _SESSION['phpgw_info']['expressomail']['user']['email'];3686 $email = $this->email; 3683 3687 $username = $this->username; 3684 3688 strtok($email, '@'); … … 3699 3703 // Seleciona qual comando a ser executado 3700 3704 switch($is_spam){ 3701 case 'true': $cmd = $ _SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_spam']; break;3702 case 'false': $cmd = $ _SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_ham']; break;3705 case 'true': $cmd = $this->command_for_spam; break; 3706 case 'false': $cmd = $this->command_for_ham; break; 3703 3707 } 3704 3708 … … 3719 3723 $header->udate += $pdate['zone']*(-60); 3720 3724 3721 if($header->Flagged != "F" && $ _SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_important_flag']) {3725 if($header->Flagged != "F" && $this->preferences->use_important_flag) { 3722 3726 $flag = preg_match('/importance *: *(.*)\r/i', 3723 3727 imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number)) … … 3733 3737 3734 3738 function insert_email($source,$folder,$timestamp){ 3735 $username = $ _SESSION['phpgw_info']['expressomail']['user']['userid'];3736 $password = $ _SESSION['phpgw_info']['expressomail']['user']['passwd'];3737 $imap_server = $ _SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];3738 $imap_port = $ _SESSION['phpgw_info']['expressomail']['email_server']['imapPort'];3739 $username = $this->username; 3740 $password = $this->password; 3741 $imap_server = $this->email_server['imapServer']; 3742 $imap_port = $this->email_server['imapPort']; 3739 3743 $imap_options = '/notls/novalidate-cert'; 3740 3744 $mbox_stream = imap_open("{".$imap_server.":".$imap_port.$imap_options."}".$folder, $username, $password); … … 3745 3749 if($timestamp){ 3746 3750 $tempDir = ini_get("session.save_path"); 3747 $file = $tempDir."imap_".$ _SESSION[ 'phpgw_session' ][ 'session_id' ];3751 $file = $tempDir."imap_".$this->session_id; 3748 3752 $f = fopen($file,"w"); 3749 3753 fputs($f,base64_encode($source)); … … 3754 3758 $return['append'] = imap_append($mbox_stream, "{".$imap_server.":".$imap_port."}".$folder, $source, "\\Seen"); 3755 3759 } 3756 $status = imap_status($mbox_stream, "{".$this-> imap_server.":".$this->imap_port."}".$folder, SA_UIDNEXT);3760 $status = imap_status($mbox_stream, "{".$this->email_server['imapServer'].":".$this->email_server['imapPort']."}".$folder, SA_UIDNEXT); 3757 3761 $return['msg_no'] = $status->uidnext - 1; 3758 3762 $return['error'] = imap_last_error(); … … 3778 3782 } 3779 3783 3780 $insert = $this->insert_email($source,'INBOX'.$this-> imap_delimiter.'decifradas');3784 $insert = $this->insert_email($source,'INBOX'.$this->email_server['imapDelimiter'].'decifradas'); 3781 3785 3782 3786 $get['msg_number'] = $insert['msg_no']; 3783 $get['msg_folder'] = 'INBOX'.$this-> imap_delimiter.'decifradas';3787 $get['msg_folder'] = 'INBOX'.$this->email_server['imapDelimiter'].'decifradas'; 3784 3788 $return = $this->get_info_msg($get); 3785 3789 $get['msg_number'] = $params['ID']; … … 3857 3861 $source = $params['source']; 3858 3862 $source = $this->treat_base64_from_post($source); 3859 $insert = $this->insert_email($source,'INBOX'.$this-> imap_delimiter.'decifradas');3863 $insert = $this->insert_email($source,'INBOX'.$this->email_server['imapDelimiter'].'decifradas'); 3860 3864 $exporteml = new ExportEml(); 3861 3865 $params['num_msg']=$insert['msg_no']; 3862 $params['folder']='INBOX'.$this-> imap_delimiter.'decifradas';3866 $params['folder']='INBOX'.$this->email_server['imapDelimiter'].'decifradas'; 3863 3867 return $exporteml->download_all_attachments($params); 3864 3868 } … … 3870 3874 $imapfp = new imapfp(); 3871 3875 3872 if(!$imapfp->open($this-> imap_server,$this->imap_port))3876 if(!$imapfp->open($this->email_server['imapServer'],$this->email_server['imapPort'])) 3873 3877 return $imapfp->get_error(); 3874 3878 if (!$imapfp->login( $this->username,$this->password )) … … 3896 3900 $quota_used = $size." b"; 3897 3901 $folder = mb_convert_encoding($folder, "ISO_8859-1", "UTF7-IMAP"); 3898 if(!preg_match('/user\\'.$this-> imap_delimiter.$this->username.'\\'.$this->imap_delimiter.'/i',$folder)){3902 if(!preg_match('/user\\'.$this->email_server['imapDelimiter'].$this->username.'\\'.$this->email_server['imapDelimiter'].'/i',$folder)){ 3899 3903 $folder = $this->functions->getLang("Inbox"); 3900 3904 } 3901 3905 else 3902 $folder = preg_replace('/user\\'.$this-> imap_delimiter.$this->username.'\\'.$this->imap_delimiter.'/i','', $folder);3906 $folder = preg_replace('/user\\'.$this->email_server['imapDelimiter'].$this->username.'\\'.$this->email_server['imapDelimiter'].'/i','', $folder); 3903 3907 3904 3908 $data[$folder] = array("quota_percent" => sprintf("%.1f",round($quotaPercent,1)), "quota_used" => $quota_used);
Note: See TracChangeset
for help on using the changeset viewer.