| | |
| | | * |
| | | * @package Mail |
| | | * @author Thomas Bruederli <roundcube@gmail.com> |
| | | * @version 1.6 |
| | | * @author Aleksander Machniak <alec@alec.pl> |
| | | * @version 2.0 |
| | | */ |
| | | class rcube_imap |
| | | { |
| | |
| | | */ |
| | | function connect($host, $user, $pass, $port=143, $use_ssl=null) |
| | | { |
| | | // check for Open-SSL support in PHP build |
| | | // check for OpenSSL support in PHP build |
| | | if ($use_ssl && extension_loaded('openssl')) |
| | | $this->options['ssl_mode'] = $use_ssl == 'imaps' ? 'ssl' : $use_ssl; |
| | | else if ($use_ssl) { |
| | |
| | | $a_out = array(); |
| | | $a_mboxes = $this->_list_mailboxes($root, $filter); |
| | | |
| | | foreach ($a_mboxes as $mbox_row) { |
| | | $name = $this->mod_mailbox($mbox_row, 'out'); |
| | | if (strlen($name)) |
| | | foreach ($a_mboxes as $idx => $mbox_row) { |
| | | if ($name = $this->mod_mailbox($mbox_row, 'out')) |
| | | $a_out[] = $name; |
| | | unset($a_mboxes[$idx]); |
| | | } |
| | | |
| | | // INBOX should always be available |
| | |
| | | $a_mboxes = $this->conn->listMailboxes($this->mod_mailbox($root), '*'); |
| | | |
| | | // modify names with root dir |
| | | foreach ($a_mboxes as $mbox_name) { |
| | | foreach ($a_mboxes as $idx => $mbox_name) { |
| | | if ($name = $this->mod_mailbox($mbox_name, 'out')) |
| | | $a_folders[] = $name; |
| | | unset($a_mboxes[$idx]); |
| | | } |
| | | |
| | | // INBOX should always be available |
| | | if (!in_array('INBOX', $a_folders)) |
| | | array_unshift($a_folders, 'INBOX'); |
| | | |
| | | // filter folders and sort them |
| | | $a_folders = $this->_sort_mailbox_list($a_folders); |
| | |
| | | foreach ($a_mboxes as $mbox_name) { |
| | | $mailbox = $this->mod_mailbox($mbox_name); |
| | | $sub_mboxes = $this->conn->listMailboxes($this->mod_mailbox(''), |
| | | $mbox_name . $this->delimiter . '*'); |
| | | $mbox_name . $this->delimiter . '*'); |
| | | |
| | | // unsubscribe mailbox before deleting |
| | | $this->conn->unsubscribe($mailbox); |
| | |
| | | return true; |
| | | |
| | | if ($subscription) { |
| | | if ($a_folders = $this->conn->listSubscribed($this->mod_mailbox(''), $mbox_name)) |
| | | return true; |
| | | $a_folders = $this->conn->listSubscribed($this->mod_mailbox(''), $mbox_name); |
| | | } |
| | | else { |
| | | $a_folders = $this->conn->listMailboxes($this->mod_mailbox(''), $mbox_name); |
| | | |
| | | if (is_array($a_folders) && in_array($this->mod_mailbox($mbox_name), $a_folders)) |
| | | } |
| | | |
| | | if (is_array($a_folders) && in_array($this->mod_mailbox($mbox_name), $a_folders)) { |
| | | return true; |
| | | } |
| | | } |
| | |
| | | if (!$this->caching_enabled) |
| | | return; |
| | | |
| | | // check for an existing record (probly headers are cached but structure not) |
| | | // check for an existing record (probably headers are cached but structure not) |
| | | if (!$force) { |
| | | $sql_result = $this->db->query( |
| | | "SELECT message_id". |