| | |
| | | */ |
| | | function messagecount($mbox_name='', $mode='ALL', $force=false, $status=true) |
| | | { |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | return $this->_messagecount($mailbox, $mode, $force, $status); |
| | | } |
| | | |
| | |
| | | { |
| | | $mode = strtoupper($mode); |
| | | |
| | | if (empty($mailbox)) |
| | | if (!strlen($mailbox)) |
| | | $mailbox = $this->mailbox; |
| | | |
| | | // count search set |
| | |
| | | */ |
| | | function list_headers($mbox_name='', $page=NULL, $sort_field=NULL, $sort_order=NULL, $slice=0) |
| | | { |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | return $this->_list_headers($mailbox, $page, $sort_field, $sort_order, false, $slice); |
| | | } |
| | | |
| | |
| | | */ |
| | | function mailbox_status($mbox_name = null) |
| | | { |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $old = $this->get_folder_stats($mailbox); |
| | | |
| | | // refresh message count -> will update |
| | |
| | | |
| | | $this->_set_sort_order($sort_field, $sort_order); |
| | | |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $key = "{$mailbox}:{$this->sort_field}:{$this->sort_order}:{$this->search_string}.msgi"; |
| | | |
| | | // we have a saved search result, get index from there |
| | |
| | | { |
| | | $this->_set_sort_order($sort_field, $sort_order); |
| | | |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $key = "{$mailbox}:{$this->sort_field}:{$this->sort_order}:{$this->search_string}.thi"; |
| | | |
| | | // we have a saved search result, get index from there |
| | |
| | | if (!$str) |
| | | return false; |
| | | |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | |
| | | $results = $this->_search_index($mailbox, $str, $charset, $sort_field); |
| | | |
| | |
| | | if (!$str) |
| | | return false; |
| | | |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | |
| | | return $this->conn->search($mailbox, $str, $ret_uid); |
| | | } |
| | |
| | | */ |
| | | function get_headers($id, $mbox_name=NULL, $is_uid=true, $bodystr=false) |
| | | { |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $uid = $is_uid ? $id : $this->_id2uid($id, $mailbox); |
| | | |
| | | // get cached headers |
| | |
| | | */ |
| | | function set_flag($uids, $flag, $mbox_name=NULL, $skip_cache=false) |
| | | { |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | |
| | | $flag = strtoupper($flag); |
| | | list($uids, $all_mode) = $this->_parse_uids($uids, $mailbox); |
| | |
| | | $fbox = $from_mbox; |
| | | $tbox = $to_mbox; |
| | | $to_mbox = $this->mod_mailbox($to_mbox); |
| | | $from_mbox = $from_mbox ? $this->mod_mailbox($from_mbox) : $this->mailbox; |
| | | $from_mbox = strlen($from_mbox) ? $this->mod_mailbox($from_mbox) : $this->mailbox; |
| | | |
| | | list($uids, $all_mode) = $this->_parse_uids($uids, $from_mbox); |
| | | |
| | |
| | | */ |
| | | function delete_message($uids, $mbox_name='') |
| | | { |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | |
| | | list($uids, $all_mode) = $this->_parse_uids($uids, $mailbox); |
| | | |
| | |
| | | */ |
| | | function clear_mailbox($mbox_name=NULL) |
| | | { |
| | | $mailbox = !empty($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | |
| | | // SELECT will set messages count for clearFolder() |
| | | if ($this->conn->select($mailbox)) { |
| | |
| | | */ |
| | | function expunge($mbox_name='', $clear_cache=true) |
| | | { |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | return $this->_expunge($mailbox, $clear_cache); |
| | | } |
| | | |
| | |
| | | */ |
| | | function get_id($uid, $mbox_name=NULL) |
| | | { |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | return $this->_uid2id($uid, $mailbox); |
| | | } |
| | | |
| | |
| | | * @param string $mbox_name Mailbox name |
| | | * @return int Message UID |
| | | */ |
| | | function get_uid($id,$mbox_name=NULL) |
| | | function get_uid($id, $mbox_name=NULL) |
| | | { |
| | | $mailbox = $mbox_name ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox; |
| | | return $this->_id2uid($id, $mailbox); |
| | | } |
| | | |
| | |
| | | $a_mboxes = $this->_list_mailboxes($root, $filter); |
| | | |
| | | foreach ($a_mboxes as $idx => $mbox_row) { |
| | | if ($name = $this->mod_mailbox($mbox_row, 'out')) |
| | | if (strlen($name = $this->mod_mailbox($mbox_row, 'out'))) |
| | | $a_out[] = $name; |
| | | unset($a_mboxes[$idx]); |
| | | } |
| | |
| | | |
| | | // modify names with root dir |
| | | foreach ($a_mboxes as $idx => $mbox_name) { |
| | | if ($name = $this->mod_mailbox($mbox_name, 'out')) |
| | | if (strlen($name = $this->mod_mailbox($mbox_name, 'out'))) |
| | | $a_folders[] = $name; |
| | | unset($a_mboxes[$idx]); |
| | | } |
| | |
| | | */ |
| | | function mailbox_exists($mbox_name, $subscription=false) |
| | | { |
| | | if ($mbox_name) { |
| | | if ($mbox_name == 'INBOX') |
| | | return true; |
| | | if ($mbox_name == 'INBOX') |
| | | return true; |
| | | |
| | | $key = $subscription ? 'subscribed' : 'existing'; |
| | | $mbox = $this->mod_mailbox($mbox_name); |
| | | $key = $subscription ? 'subscribed' : 'existing'; |
| | | $mbox = $this->mod_mailbox($mbox_name); |
| | | |
| | | if (is_array($this->icache[$key]) && in_array($mbox, $this->icache[$key])) |
| | | return true; |
| | | if (is_array($this->icache[$key]) && in_array($mbox, $this->icache[$key])) |
| | | return true; |
| | | |
| | | if ($subscription) { |
| | | $a_folders = $this->conn->listSubscribed('', $mbox); |
| | | } |
| | | else { |
| | | $a_folders = $this->conn->listMailboxes('', $mbox); |
| | | } |
| | | if ($subscription) { |
| | | $a_folders = $this->conn->listSubscribed('', $mbox); |
| | | } |
| | | else { |
| | | $a_folders = $this->conn->listMailboxes('', $mbox); |
| | | } |
| | | |
| | | if (is_array($a_folders) && in_array($mbox, $a_folders)) { |
| | | $this->icache[$key][] = $mbox; |
| | | return true; |
| | | } |
| | | if (is_array($a_folders) && in_array($mbox, $a_folders)) { |
| | | $this->icache[$key][] = $mbox; |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | |
| | | */ |
| | | function mod_mailbox($mbox_name, $mode='in') |
| | | { |
| | | if (empty($mbox_name)) |
| | | if (!strlen($mbox_name)) |
| | | return ''; |
| | | |
| | | if ($mode == 'in') { |
| | |
| | | if ($mailbox) |
| | | $mailbox = $this->mod_mailbox($mailbox); |
| | | |
| | | if ($this->get_capability('METADATA') || |
| | | empty($mailbox) && $this->get_capability('METADATA-SERVER') |
| | | if ($this->get_capability('METADATA') || |
| | | (!strlen($mailbox) && $this->get_capability('METADATA-SERVER')) |
| | | ) { |
| | | return $this->conn->setMetadata($mailbox, $entries); |
| | | } |
| | |
| | | $mailbox = $this->mod_mailbox($mailbox); |
| | | |
| | | if ($this->get_capability('METADATA') || |
| | | empty($mailbox) && $this->get_capability('METADATA-SERVER') |
| | | (!strlen($mailbox) && $this->get_capability('METADATA-SERVER')) |
| | | ) { |
| | | return $this->conn->deleteMetadata($mailbox, $entries); |
| | | } |
| | |
| | | $mailbox = $this->mod_mailbox($mailbox); |
| | | |
| | | if ($this->get_capability('METADATA') || |
| | | empty($mailbox) && $this->get_capability('METADATA-SERVER') |
| | | !strlen(($mailbox) && $this->get_capability('METADATA-SERVER')) |
| | | ) { |
| | | return $this->conn->getMetadata($mailbox, $entries, $options); |
| | | } |
| | |
| | | */ |
| | | private function _uid2id($uid, $mbox_name=NULL) |
| | | { |
| | | if (!$mbox_name) |
| | | if (!strlen($mbox_name)) |
| | | $mbox_name = $this->mailbox; |
| | | |
| | | if (!isset($this->uid_id_map[$mbox_name][$uid])) { |
| | |
| | | */ |
| | | private function _id2uid($id, $mbox_name=NULL) |
| | | { |
| | | if (!$mbox_name) |
| | | if (!strlen($mbox_name)) |
| | | $mbox_name = $this->mailbox; |
| | | |
| | | if ($uid = array_search($id, (array)$this->uid_id_map[$mbox_name])) |
| | |
| | | private function _set_messagecount($mbox_name, $mode, $increment) |
| | | { |
| | | $a_mailbox_cache = false; |
| | | $mailbox = $mbox_name ? $mbox_name : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $mbox_name : $this->mailbox; |
| | | $mode = strtoupper($mode); |
| | | |
| | | $a_mailbox_cache = $this->get_cache('messagecount'); |
| | |
| | | */ |
| | | private function _clear_messagecount($mbox_name='', $mode=null) |
| | | { |
| | | $mailbox = $mbox_name ? $mbox_name : $this->mailbox; |
| | | $mailbox = strlen($mbox_name) ? $mbox_name : $this->mailbox; |
| | | |
| | | $a_mailbox_cache = $this->get_cache('messagecount'); |
| | | |