diff options
Diffstat (limited to 'program/steps/mail')
-rw-r--r-- | program/steps/mail/check_recent.inc | 32 | ||||
-rw-r--r-- | program/steps/mail/compose.inc | 22 | ||||
-rw-r--r-- | program/steps/mail/copy.inc | 2 | ||||
-rw-r--r-- | program/steps/mail/folders.inc | 6 | ||||
-rw-r--r-- | program/steps/mail/func.inc | 90 | ||||
-rw-r--r-- | program/steps/mail/get.inc | 8 | ||||
-rw-r--r-- | program/steps/mail/getunread.inc | 6 | ||||
-rw-r--r-- | program/steps/mail/headers.inc | 2 | ||||
-rw-r--r-- | program/steps/mail/list.inc | 23 | ||||
-rw-r--r-- | program/steps/mail/mark.inc | 45 | ||||
-rw-r--r-- | program/steps/mail/move_del.inc | 43 | ||||
-rw-r--r-- | program/steps/mail/pagenav.inc | 12 | ||||
-rw-r--r-- | program/steps/mail/search.inc | 20 | ||||
-rw-r--r-- | program/steps/mail/sendmail.inc | 20 | ||||
-rw-r--r-- | program/steps/mail/show.inc | 14 | ||||
-rw-r--r-- | program/steps/mail/viewsource.inc | 4 |
16 files changed, 178 insertions, 171 deletions
diff --git a/program/steps/mail/check_recent.inc b/program/steps/mail/check_recent.inc index 498bf0ce1..6673d0c17 100644 --- a/program/steps/mail/check_recent.inc +++ b/program/steps/mail/check_recent.inc @@ -19,12 +19,12 @@ */ -$current = $RCMAIL->imap->get_mailbox_name(); +$current = $RCMAIL->storage->get_folder(); $check_all = !empty($_GET['_refresh']) || (bool)$RCMAIL->config->get('check_all_folders'); // list of folders to check if ($check_all) { - $a_mailboxes = $RCMAIL->imap->list_mailboxes('', '*', 'mail'); + $a_mailboxes = $RCMAIL->storage->list_folders_subscribed('', '*', 'mail'); } else { $a_mailboxes = (array) $current; @@ -37,11 +37,11 @@ foreach ($a_mailboxes as $mbox_name) { $is_current = $mbox_name == $current; if ($is_current) { // Synchronize mailbox cache, handle flag changes - $RCMAIL->imap->mailbox_sync($mbox_name); + $RCMAIL->storage->folder_sync($mbox_name); } // Get mailbox status - $status = $RCMAIL->imap->mailbox_status($mbox_name); + $status = $RCMAIL->storage->folder_status($mbox_name); if ($status & 1) { // trigger plugin hook @@ -58,7 +58,7 @@ foreach ($a_mailboxes as $mbox_name) { if ($search_request && isset($_SESSION['search']) && $_SESSION['search_request'] == $search_request ) { - $_SESSION['search'] = $RCMAIL->imap->refresh_search(); + $_SESSION['search'] = $RCMAIL->storage->refresh_search(); } if (!empty($_GET['_quota'])) @@ -68,28 +68,32 @@ foreach ($a_mailboxes as $mbox_name) { if (empty($_GET['_list'])) continue; - // get overall message count; allow caching because rcube_imap::mailbox_status() did a refresh - $all_count = $RCMAIL->imap->messagecount(null, $RCMAIL->imap->threading ? 'THREADS' : 'ALL'); + // get overall message count; allow caching because rcube_storage::folder_status() did a refresh + $all_count = $RCMAIL->storage->count(null, $RCMAIL->storage->get_threading() ? 'THREADS' : 'ALL'); + + $page = $RCMAIL->storage->get_page(); + $page_size = $RCMAIL->storage->get_pagesize(); // check current page if we're not on the first page - if ($all_count && $RCMAIL->imap->list_page > 1) { - $remaining = $all_count - $RCMAIL->imap->page_size * ($RCMAIL->imap->list_page - 1); + if ($all_count && $page > 1) { + $remaining = $all_count - $page_size * ($page - 1); if ($remaining <= 0) { - $RCMAIL->imap->set_page($RCMAIL->imap->list_page-1); - $_SESSION['page'] = $RCMAIL->imap->list_page; + $page -= 1; + $RCMAIL->storage->set_page($page); + $_SESSION['page'] = $page; } } $OUTPUT->set_env('messagecount', $all_count); - $OUTPUT->set_env('pagecount', ceil($all_count/$RCMAIL->imap->page_size)); + $OUTPUT->set_env('pagecount', ceil($all_count/$page_size)); $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($all_count), $mbox_name); - $OUTPUT->set_env('current_page', $all_count ? $RCMAIL->imap->list_page : 1); + $OUTPUT->set_env('current_page', $all_count ? $page : 1); // remove old rows (and clear selection if new list is empty) $OUTPUT->command('message_list.clear', $all_count ? false : true); if ($all_count) { - $a_headers = $RCMAIL->imap->list_headers($mbox_name, null, $_SESSION['sort_col'], $_SESSION['sort_order']); + $a_headers = $RCMAIL->storage->list_messages($mbox_name, null, $_SESSION['sort_col'], $_SESSION['sort_order']); // add message rows rcmail_js_message_list($a_headers, false); // remove messages that don't exists from list selection array diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 274983a18..687849863 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -56,7 +56,7 @@ if (!is_array($COMPOSE)) $_SESSION['compose_data_'.$COMPOSE_ID] = array( 'id' => $COMPOSE_ID, 'param' => request2param(RCUBE_INPUT_GET), - 'mailbox' => $RCMAIL->imap->get_mailbox_name(), + 'mailbox' => $RCMAIL->storage->get_folder(), ); $COMPOSE =& $_SESSION['compose_data_'.$COMPOSE_ID]; @@ -134,7 +134,7 @@ if (!empty($CONFIG['drafts_mbox'])) { $OUTPUT->set_env('draft_autosave', $CONFIG['draft_autosave']); } // set current mailbox in client environment -$OUTPUT->set_env('mailbox', $RCMAIL->imap->get_mailbox_name()); +$OUTPUT->set_env('mailbox', $RCMAIL->storage->get_folder()); $OUTPUT->set_env('sig_above', $RCMAIL->config->get('sig_above', false)); $OUTPUT->set_env('top_posting', $RCMAIL->config->get('top_posting', false)); $OUTPUT->set_env('recipients_separator', trim($RCMAIL->config->get('recipients_separator', ','))); @@ -147,7 +147,7 @@ if ($font && !is_array($font)) { // get reference message and set compose mode if ($msg_uid = $COMPOSE['param']['draft_uid']) { - $RCMAIL->imap->set_mailbox($CONFIG['drafts_mbox']); + $RCMAIL->storage->set_folder($CONFIG['drafts_mbox']); $compose_mode = RCUBE_COMPOSE_DRAFT; } else if ($msg_uid = $COMPOSE['param']['reply_uid']) @@ -179,10 +179,10 @@ if (!empty($msg_uid)) // make sure message is marked as read if ($MESSAGE && $MESSAGE->headers && empty($MESSAGE->headers->flags['SEEN'])) - $RCMAIL->imap->set_flag($msg_uid, 'SEEN'); + $RCMAIL->storage->set_flag($msg_uid, 'SEEN'); if (!empty($MESSAGE->headers->charset)) - $RCMAIL->imap->set_charset($MESSAGE->headers->charset); + $RCMAIL->storage->set_charset($MESSAGE->headers->charset); if ($compose_mode == RCUBE_COMPOSE_REPLY) { @@ -1051,12 +1051,12 @@ function rcmail_write_forward_attachment(&$message) $temp_dir = unslashify($RCMAIL->config->get('temp_dir')); $path = tempnam($temp_dir, 'rcmAttmnt'); if ($fp = fopen($path, 'w')) { - $RCMAIL->imap->get_raw_body($message->uid, $fp); + $RCMAIL->storage->get_raw_body($message->uid, $fp); fclose($fp); } else return false; } else { - $data = $RCMAIL->imap->get_raw_body($message->uid); + $data = $RCMAIL->storage->get_raw_body($message->uid); } $attachment = array( @@ -1428,16 +1428,16 @@ function rcmail_check_sent_folder($folder, $create=false) { global $RCMAIL; - if ($RCMAIL->imap->mailbox_exists($folder, true)) { + if ($RCMAIL->storage->folder_exists($folder, true)) { return true; } // folder may exist but isn't subscribed (#1485241) if ($create) { - if (!$RCMAIL->imap->mailbox_exists($folder)) - return $RCMAIL->imap->create_mailbox($folder, true); + if (!$RCMAIL->storage->folder_exists($folder)) + return $RCMAIL->storage->create_folder($folder, true); else - return $RCMAIL->imap->subscribe($folder); + return $RCMAIL->storage->subscribe($folder); } return false; diff --git a/program/steps/mail/copy.inc b/program/steps/mail/copy.inc index edb6af3d5..e553adc14 100644 --- a/program/steps/mail/copy.inc +++ b/program/steps/mail/copy.inc @@ -29,7 +29,7 @@ if (!empty($_POST['_uid']) && !empty($_POST['_target_mbox'])) { $target = get_input_value('_target_mbox', RCUBE_INPUT_POST, true); $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true); - $copied = $RCMAIL->imap->copy_message($uids, $target, $mbox); + $copied = $RCMAIL->storage->copy_message($uids, $target, $mbox); if (!$copied) { // send error message diff --git a/program/steps/mail/folders.inc b/program/steps/mail/folders.inc index 6e687b06a..2aa83ee0d 100644 --- a/program/steps/mail/folders.inc +++ b/program/steps/mail/folders.inc @@ -27,7 +27,7 @@ $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true); // send EXPUNGE command if ($RCMAIL->action == 'expunge') { - $success = $RCMAIL->imap->expunge($mbox); + $success = $RCMAIL->storage->expunge_folder($mbox); // reload message list if current mailbox if ($success) { @@ -48,7 +48,7 @@ if ($RCMAIL->action == 'expunge') { // clear mailbox else if ($RCMAIL->action == 'purge') { - $delimiter = $RCMAIL->imap->get_hierarchy_delimiter(); + $delimiter = $RCMAIL->storage->get_hierarchy_delimiter(); $trash_regexp = '/^' . preg_quote($CONFIG['trash_mbox'] . $delimiter, '/') . '/'; $junk_regexp = '/^' . preg_quote($CONFIG['junk_mbox'] . $delimiter, '/') . '/'; @@ -56,7 +56,7 @@ else if ($RCMAIL->action == 'purge') if ($mbox == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox'] || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox) ) { - $success = $RCMAIL->imap->clear_mailbox($mbox); + $success = $RCMAIL->storage->clear_folder($mbox); if ($success) { $OUTPUT->show_message('folderpurged', 'confirmation'); diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 5d0b30a0e..0ffffc5fc 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -28,31 +28,17 @@ $SEARCH_MODS_DEFAULT = array( $DRAFTS_MBOX => array('subject'=>1, 'to'=>1) ); -// actions that do not require imap connection here -$NOIMAP_ACTIONS = array('addcontact', 'autocomplete', 'upload', 'display-attachment', 'remove-attachment', 'get'); - -// always instantiate imap object (but not yet connect to server) -$RCMAIL->imap_init(); - -// log in to imap server -if (!in_array($RCMAIL->action, $NOIMAP_ACTIONS) && !$RCMAIL->imap_connect()) { - $RCMAIL->kill_session(); - - if ($OUTPUT->ajax_call) - $OUTPUT->redirect(array(), 2000); - - $OUTPUT->set_env('task', 'login'); - $OUTPUT->send('login'); -} +// always instantiate storage object (but not connect to server yet) +$RCMAIL->storage_init(); // set imap properties and session vars if (strlen(trim($mbox = get_input_value('_mbox', RCUBE_INPUT_GPC, true)))) - $RCMAIL->imap->set_mailbox(($_SESSION['mbox'] = $mbox)); -else if ($RCMAIL->imap) - $_SESSION['mbox'] = $RCMAIL->imap->get_mailbox_name(); + $RCMAIL->storage->set_folder(($_SESSION['mbox'] = $mbox)); +else if ($RCMAIL->storage) + $_SESSION['mbox'] = $RCMAIL->storage->get_folder(); if (!empty($_GET['_page'])) - $RCMAIL->imap->set_page(($_SESSION['page'] = intval($_GET['_page']))); + $RCMAIL->storage->set_page(($_SESSION['page'] = intval($_GET['_page']))); // set default sort col/order to session if (!isset($_SESSION['sort_col'])) @@ -69,28 +55,28 @@ if (isset($_GET['_threads'])) { unset($a_threading[$_SESSION['mbox']]); $RCMAIL->user->save_prefs(array('message_threading' => $a_threading)); } -$RCMAIL->imap->set_threading($a_threading[$_SESSION['mbox']]); +$RCMAIL->storage->set_threading($a_threading[$_SESSION['mbox']]); // set message set for search result if (!empty($_REQUEST['_search']) && isset($_SESSION['search']) && $_SESSION['search_request'] == $_REQUEST['_search'] ) { - $RCMAIL->imap->set_search_set($_SESSION['search']); + $RCMAIL->storage->set_search_set($_SESSION['search']); $OUTPUT->set_env('search_request', $_REQUEST['_search']); $OUTPUT->set_env('search_text', $_SESSION['last_text_search']); } // set main env variables, labels and page title if (empty($RCMAIL->action) || $RCMAIL->action == 'list') { - $mbox_name = $RCMAIL->imap->get_mailbox_name(); + $mbox_name = $RCMAIL->storage->get_folder(); if (empty($RCMAIL->action)) { // initialize searching result if search_filter is used if ($_SESSION['search_filter'] && $_SESSION['search_filter'] != 'ALL') { $search_request = md5($mbox_name.$_SESSION['search_filter']); - $RCMAIL->imap->search($mbox_name, $_SESSION['search_filter'], RCMAIL_CHARSET, $_SESSION['sort_col']); - $_SESSION['search'] = $RCMAIL->imap->get_search_set(); + $RCMAIL->storage->search($mbox_name, $_SESSION['search_filter'], RCMAIL_CHARSET, $_SESSION['sort_col']); + $_SESSION['search'] = $RCMAIL->storage->get_search_set(); $_SESSION['search_request'] = $search_request; $OUTPUT->set_env('search_request', $search_request); } @@ -99,13 +85,15 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') { $OUTPUT->set_env('search_mods', $search_mods); } + $threading = (bool) $RCMAIL->storage->get_threading(); + // set current mailbox and some other vars in client environment $OUTPUT->set_env('mailbox', $mbox_name); - $OUTPUT->set_env('pagesize', $RCMAIL->imap->page_size); - $OUTPUT->set_env('quota', $RCMAIL->imap->get_capability('QUOTA')); - $OUTPUT->set_env('delimiter', $RCMAIL->imap->get_hierarchy_delimiter()); - $OUTPUT->set_env('threading', (bool) $RCMAIL->imap->threading); - $OUTPUT->set_env('threads', $RCMAIL->imap->threading || $RCMAIL->imap->get_capability('THREAD')); + $OUTPUT->set_env('pagesize', $RCMAIL->storage->get_pagesize()); + $OUTPUT->set_env('quota', $RCMAIL->storage->get_capability('QUOTA')); + $OUTPUT->set_env('delimiter', $RCMAIL->storage->get_hierarchy_delimiter()); + $OUTPUT->set_env('threading', $threading); + $OUTPUT->set_env('threads', $threading || $RCMAIL->storage->get_capability('THREAD')); $OUTPUT->set_env('preview_pane_mark_read', $RCMAIL->config->get('preview_pane_mark_read', 0)); if ($CONFIG['flag_for_deletion']) @@ -130,7 +118,7 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') { 'movingmessage', 'copyingmessage', 'deletingmessage', 'markingmessage', 'copy', 'move', 'quota'); - $OUTPUT->set_pagetitle(rcmail_localize_foldername($RCMAIL->imap->mod_mailbox($mbox_name))); + $OUTPUT->set_pagetitle(rcmail_localize_foldername($RCMAIL->storage->mod_folder($mbox_name))); } @@ -161,8 +149,8 @@ function rcmail_message_list($attrib) // save some variables for use in ajax list $_SESSION['list_attrib'] = $attrib; - $mbox = $RCMAIL->imap->get_mailbox_name(); - $delim = $RCMAIL->imap->get_hierarchy_delimiter(); + $mbox = $RCMAIL->storage->get_folder(); + $delim = $RCMAIL->storage->get_hierarchy_delimiter(); // show 'to' instead of 'from' in sent/draft messages if ((strpos($mbox.$delim, $CONFIG['sent_mbox'].$delim)===0 || strpos($mbox.$delim, $CONFIG['drafts_mbox'].$delim)===0) @@ -218,8 +206,8 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null $head_replace = true; } - $mbox = $RCMAIL->imap->get_mailbox_name(); - $delim = $RCMAIL->imap->get_hierarchy_delimiter(); + $mbox = $RCMAIL->storage->get_folder(); + $delim = $RCMAIL->storage->get_hierarchy_delimiter(); // make sure 'threads' and 'subject' columns are present if (!in_array('subject', $a_show_cols)) @@ -317,7 +305,7 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null $insert_top); } - if ($RCMAIL->imap->threading) { + if ($RCMAIL->storage->get_threading()) { $OUTPUT->command('init_threads', (array) $roots, $mbox); } } @@ -430,22 +418,24 @@ function rcmail_get_messagecount_text($count=NULL, $page=NULL) { global $RCMAIL; - if ($page===NULL) - $page = $RCMAIL->imap->list_page; + if ($page === NULL) { + $page = $RCMAIL->storage->get_page(); + } - $start_msg = ($page-1) * $RCMAIL->imap->page_size + 1; + $page_size = $RCMAIL->storage->get_pagesize(); + $start_msg = ($page-1) * $page_size + 1; if ($count!==NULL) $max = $count; else if ($RCMAIL->action) - $max = $RCMAIL->imap->messagecount(NULL, $RCMAIL->imap->threading ? 'THREADS' : 'ALL'); + $max = $RCMAIL->storage->count(NULL, $RCMAIL->storage->get_threading() ? 'THREADS' : 'ALL'); if ($max==0) $out = rcube_label('mailboxempty'); else - $out = rcube_label(array('name' => $RCMAIL->imap->threading ? 'threadsfromto' : 'messagesfromto', + $out = rcube_label(array('name' => $RCMAIL->storage->get_threading() ? 'threadsfromto' : 'messagesfromto', 'vars' => array('from' => $start_msg, - 'to' => min($max, $start_msg + $RCMAIL->imap->page_size - 1), + 'to' => min($max, $start_msg + $page_size - 1), 'count' => $max))); return Q($out); @@ -468,7 +458,7 @@ function rcmail_mailbox_name_display($attrib) function rcmail_get_mailbox_name_text() { global $RCMAIL; - return rcmail_localize_foldername($RCMAIL->imap->get_mailbox_name()); + return rcmail_localize_foldername($RCMAIL->storage->get_folder()); } @@ -479,7 +469,7 @@ function rcmail_send_unread_count($mbox_name, $force=false, $count=null, $mark=' $old_unseen = rcmail_get_unseen_count($mbox_name); if ($count === null) - $unseen = $RCMAIL->imap->messagecount($mbox_name, 'UNSEEN', $force); + $unseen = $RCMAIL->storage->count($mbox_name, 'UNSEEN', $force); else $unseen = $count; @@ -590,7 +580,7 @@ function rcmail_wash_html($html, $p, $cid_replaces) // fix (unknown/malformed) HTML tags before "wash" $html = preg_replace_callback('/(<[\/]*)([^\s>]+)/', 'rcmail_html_tag_callback', $html); - // charset was converted to UTF-8 in rcube_imap::get_message_part(), + // charset was converted to UTF-8 in rcube_storage::get_message_part(), // change/add charset specification in HTML accordingly, // washtml cannot work without that $meta = '<meta http-equiv="Content-Type" content="text/html; charset='.RCMAIL_CHARSET.'" />'; @@ -1010,7 +1000,7 @@ function rcmail_message_body($attrib) if (!rcmail_mem_check($part->size * 10)) { $out .= html::span('part-notice', rcube_label('messagetoobig'). ' ' . html::a('?_task=mail&_action=get&_download=1&_uid='.$MESSAGE->uid.'&_part='.$part->mime_id - .'&_mbox='. urlencode($RCMAIL->imap->get_mailbox_name()), rcube_label('download'))); + .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), rcube_label('download'))); continue; } @@ -1056,7 +1046,7 @@ function rcmail_message_body($attrib) if (!rcmail_mem_check(strlen($MESSAGE->body) * 10)) { $out .= html::span('part-notice', rcube_label('messagetoobig'). ' ' . html::a('?_task=mail&_action=get&_download=1&_uid='.$MESSAGE->uid.'&_part=0' - .'&_mbox='. urlencode($RCMAIL->imap->get_mailbox_name()), rcube_label('download'))); + .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), rcube_label('download'))); } else { $plugin = $RCMAIL->plugins->exec_hook('message_body_prefix', array( @@ -1477,7 +1467,7 @@ function rcmail_send_mdn($message, &$smtp_error) $message = new rcube_message($message); if ($message->headers->mdn_to && empty($message->headers->flags['MDNSENT']) && - ($RCMAIL->imap->check_permflag('MDNSENT') || $RCMAIL->imap->check_permflag('*'))) + ($RCMAIL->storage->check_permflag('MDNSENT') || $RCMAIL->storage->check_permflag('*'))) { $identity = $RCMAIL->user->get_identity(); $sender = format_email_recipient($identity['email'], $identity['name']); @@ -1533,7 +1523,7 @@ function rcmail_send_mdn($message, &$smtp_error) if ($sent) { - $RCMAIL->imap->set_flag($message->uid, 'MDNSENT'); + $RCMAIL->storage->set_flag($message->uid, 'MDNSENT'); return true; } } @@ -1596,7 +1586,7 @@ function rcmail_message_error($uid=null) // Set env variables for messageerror.html template if ($RCMAIL->action == 'show') { - $mbox_name = $RCMAIL->imap->get_mailbox_name(); + $mbox_name = $RCMAIL->storage->get_folder(); $RCMAIL->output->set_env('mailbox', $mbox_name); $RCMAIL->output->set_env('uid', null); } diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc index d114e7c61..7da8f13fa 100644 --- a/program/steps/mail/get.inc +++ b/program/steps/mail/get.inc @@ -36,7 +36,7 @@ if (!empty($_GET['_preload'])) { ob_end_clean(); // Now we need IMAP connection -if (!$RCMAIL->imap_connect()) { +if (!$RCMAIL->storage_connect()) { // Get action is often executed simultanously. // Some servers have MAXPERIP or other limits. // To workaround this we'll wait for some time @@ -117,7 +117,7 @@ else if (strlen($pid = get_input_value('_part', RCUBE_INPUT_GET))) { if (!rcmail_mem_check($part->size * 10)) { $out = '<body>' . rcube_label('messagetoobig'). ' ' . html::a('?_task=mail&_action=get&_download=1&_uid='.$MESSAGE->uid.'&_part='.$part->mime_id - .'&_mbox='. urlencode($RCMAIL->imap->get_mailbox_name()), rcube_label('download')) . '</body></html>'; + .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), rcube_label('download')) . '</body></html>'; } else { // get part body if not available @@ -157,7 +157,7 @@ else if (strlen($pid = get_input_value('_part', RCUBE_INPUT_GET))) { $stdout = fopen('php://output', 'w'); stream_filter_register('rcube_content', 'rcube_content_filter') or die('Failed to register content filter'); stream_filter_append($stdout, 'rcube_content'); - $RCMAIL->imap->get_message_part($MESSAGE->uid, $part->mime_id, $part, false, $stdout); + $RCMAIL->storage->get_message_part($MESSAGE->uid, $part->mime_id, $part, false, $stdout); } } else { @@ -165,7 +165,7 @@ else if (strlen($pid = get_input_value('_part', RCUBE_INPUT_GET))) { if ($part->body) echo $part->body; else if ($part->size) - $RCMAIL->imap->get_message_part($MESSAGE->uid, $part->mime_id, $part, true); + $RCMAIL->storage->get_message_part($MESSAGE->uid, $part->mime_id, $part, true); } } diff --git a/program/steps/mail/getunread.inc b/program/steps/mail/getunread.inc index 39880b99b..64e7a6aee 100644 --- a/program/steps/mail/getunread.inc +++ b/program/steps/mail/getunread.inc @@ -19,11 +19,11 @@ */ -$a_folders = $RCMAIL->imap->list_mailboxes('', '*', 'mail'); +$a_folders = $RCMAIL->storage->list_folders_subscribed('', '*', 'mail'); if (!empty($a_folders)) { - $current = $RCMAIL->imap->get_mailbox_name(); + $current = $RCMAIL->storage->get_folder(); $inbox = ($current == 'INBOX'); $check_all = (bool)$RCMAIL->config->get('check_all_folders'); @@ -33,7 +33,7 @@ if (!empty($a_folders)) if (!$check_all && $unseen_old !== null && $mbox_row != $current) $unseen = $unseen_old; else - $unseen = $RCMAIL->imap->messagecount($mbox_row, 'UNSEEN', $unseen_old === null); + $unseen = $RCMAIL->storage->count($mbox_row, 'UNSEEN', $unseen_old === null); if ($unseen || $unseen_old === null) { $OUTPUT->command('set_unread_count', $mbox_row, $unseen, $inbox && $mbox_row == 'INBOX'); diff --git a/program/steps/mail/headers.inc b/program/steps/mail/headers.inc index 5eee4bdef..0cce5a503 100644 --- a/program/steps/mail/headers.inc +++ b/program/steps/mail/headers.inc @@ -20,7 +20,7 @@ if ($uid = get_input_value('_uid', RCUBE_INPUT_POST)) { - $source = $RCMAIL->imap->get_raw_headers($uid); + $source = $RCMAIL->storage->get_raw_headers($uid); if ($source !== false) { $source = htmlspecialchars(trim($source)); diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc index c2a47488f..8bfb4c8f1 100644 --- a/program/steps/mail/list.inc +++ b/program/steps/mail/list.inc @@ -51,30 +51,31 @@ if ($cols = get_input_value('_cols', RCUBE_INPUT_GET)) if ($save_arr) $RCMAIL->user->save_prefs($save_arr); -$mbox_name = $RCMAIL->imap->get_mailbox_name(); +$mbox_name = $RCMAIL->storage->get_folder(); +$threading = (bool) $RCMAIL->storage->get_threading(); // Synchronize mailbox cache, handle flag changes -$RCMAIL->imap->mailbox_sync($mbox_name); +$RCMAIL->storage->folder_sync($mbox_name); // initialize searching result if search_filter is used if ($_SESSION['search_filter'] && $_SESSION['search_filter'] != 'ALL') { $search_request = md5($mbox_name.$_SESSION['search_filter']); - $RCMAIL->imap->search($mbox_name, $_SESSION['search_filter'], RCMAIL_CHARSET, $sort_col); - $_SESSION['search'] = $RCMAIL->imap->get_search_set(); + $RCMAIL->storage->search($mbox_name, $_SESSION['search_filter'], RCMAIL_CHARSET, $sort_col); + $_SESSION['search'] = $RCMAIL->storage->get_search_set(); $_SESSION['search_request'] = $search_request; $OUTPUT->set_env('search_request', $search_request); } // fetch message headers -if ($count = $RCMAIL->imap->messagecount($mbox_name, $RCMAIL->imap->threading ? 'THREADS' : 'ALL', !empty($_REQUEST['_refresh']))) - $a_headers = $RCMAIL->imap->list_headers($mbox_name, NULL, $sort_col, $sort_order); +if ($count = $RCMAIL->storage->count($mbox_name, $threading ? 'THREADS' : 'ALL', !empty($_REQUEST['_refresh']))) + $a_headers = $RCMAIL->storage->list_messages($mbox_name, NULL, $sort_col, $sort_order); // update search set (possible change of threading mode) if (!empty($_REQUEST['_search']) && isset($_SESSION['search']) && $_SESSION['search_request'] == $_REQUEST['_search'] ) { - $_SESSION['search'] = $RCMAIL->imap->get_search_set(); + $_SESSION['search'] = $RCMAIL->storage->get_search_set(); } // remove old search data else if (empty($_REQUEST['_search']) && isset($_SESSION['search'])) { @@ -91,11 +92,11 @@ if (empty($search_request) && empty($a_headers)) { rcmail_send_unread_count($mbox_name, !empty($_REQUEST['_refresh']), $unseen); // update message count display -$pages = ceil($count/$RCMAIL->imap->page_size); +$pages = ceil($count/$RCMAIL->storage->get_pagesize()); $OUTPUT->set_env('messagecount', $count); $OUTPUT->set_env('pagecount', $pages); -$OUTPUT->set_env('threading', (bool) $RCMAIL->imap->threading); -$OUTPUT->set_env('current_page', $count ? $RCMAIL->imap->list_page : 1); +$OUTPUT->set_env('threading', $threading); +$OUTPUT->set_env('current_page', $count ? $RCMAIL->storage->get_page() : 1); $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count), $mbox_name); $OUTPUT->command('set_mailboxname', rcmail_get_mailbox_name_text()); @@ -108,7 +109,7 @@ if (isset($a_headers) && count($a_headers)) } else { // handle IMAP errors (e.g. #1486905) - if ($err_code = $RCMAIL->imap->get_error_code()) { + if ($err_code = $RCMAIL->storage->get_error_code()) { rcmail_display_server_error(); } else if ($search_request) diff --git a/program/steps/mail/mark.inc b/program/steps/mail/mark.inc index 3b52dfe4f..ab64debb7 100644 --- a/program/steps/mail/mark.inc +++ b/program/steps/mail/mark.inc @@ -30,18 +30,20 @@ $a_flags_map = array( 'flagged' => 'FLAGGED', 'unflagged' => 'UNFLAGGED'); +$threading = (bool) $RCMAIL->storage->get_threading(); + if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_value('_flag', RCUBE_INPUT_POST))) { $flag = $a_flags_map[$flag] ? $a_flags_map[$flag] : strtoupper($flag); if ($flag == 'DELETED' && $CONFIG['skip_deleted'] && $_POST['_from'] != 'show') { // count messages before changing anything - $old_count = $RCMAIL->imap->messagecount(NULL, $RCMAIL->imap->threading ? 'THREADS' : 'ALL'); - $old_pages = ceil($old_count / $RCMAIL->imap->page_size); + $old_count = $RCMAIL->storage->count(NULL, $threading ? 'THREADS' : 'ALL'); + $old_pages = ceil($old_count / $RCMAIL->storage->get_pagesize()); $count = sizeof(explode(',', $uids)); } - $marked = $RCMAIL->imap->set_flag($uids, $flag); + $marked = $RCMAIL->storage->set_flag($uids, $flag); if (!$marked) { // send error message @@ -57,14 +59,14 @@ if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_va if ($flag == 'DELETED' && $CONFIG['read_when_deleted'] && !empty($_POST['_ruid'])) { $ruids = get_input_value('_ruid', RCUBE_INPUT_POST); - $read = $RCMAIL->imap->set_flag($ruids, 'SEEN'); + $read = $RCMAIL->storage->set_flag($ruids, 'SEEN'); if ($read && !$CONFIG['skip_deleted']) $OUTPUT->command('flag_deleted_as_read', $ruids); } if ($flag == 'SEEN' || $flag == 'UNSEEN' || ($flag == 'DELETED' && !$CONFIG['skip_deleted'])) { - rcmail_send_unread_count($RCMAIL->imap->get_mailbox_name()); + rcmail_send_unread_count($RCMAIL->storage->get_folder()); } else if ($flag == 'DELETED' && $CONFIG['skip_deleted']) { if ($_POST['_from'] == 'show') { @@ -73,31 +75,35 @@ if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_va else $OUTPUT->command('command', 'list'); } else { + $search_request = get_input_value('_search', RCUBE_INPUT_GPC); // refresh saved search set after moving some messages - if (($search_request = get_input_value('_search', RCUBE_INPUT_GPC)) && $RCMAIL->imap->search_set) { - $_SESSION['search'] = $RCMAIL->imap->refresh_search(); + if ($search_request && $RCMAIL->storage->get_search_set()) { + $_SESSION['search'] = $RCMAIL->storage->refresh_search(); } - $msg_count = $RCMAIL->imap->messagecount(NULL, $RCMAIL->imap->threading ? 'THREADS' : 'ALL'); - $pages = ceil($msg_count / $RCMAIL->imap->page_size); - $nextpage_count = $old_count - $RCMAIL->imap->page_size * $RCMAIL->imap->list_page; - $remaining = $msg_count - $RCMAIL->imap->page_size * ($RCMAIL->imap->list_page - 1); + $msg_count = $RCMAIL->storage->count(NULL, $threading ? 'THREADS' : 'ALL'); + $page_size = $RCMAIL->storage->get_pagesize(); + $page = $RCMAIL->storage->get_page(); + $pages = ceil($msg_count / $page_size); + $nextpage_count = $old_count - $page_size * $page; + $remaining = $msg_count - $page_size * ($page - 1); // jump back one page (user removed the whole last page) - if ($RCMAIL->imap->list_page > 1 && $remaining == 0) { - $RCMAIL->imap->set_page($RCMAIL->imap->list_page-1); - $_SESSION['page'] = $RCMAIL->imap->list_page; + if ($page > 1 && $remaining == 0) { + $page -= 1; + $RCMAIL->storage->set_page($page); + $_SESSION['page'] = $page; $jump_back = true; } // update message count display $OUTPUT->set_env('messagecount', $msg_count); - $OUTPUT->set_env('current_page', $RCMAIL->imap->list_page); + $OUTPUT->set_env('current_page', $page); $OUTPUT->set_env('pagecount', $pages); // update mailboxlist - $mbox = $RCMAIL->imap->get_mailbox_name(); - $unseen_count = $msg_count ? $RCMAIL->imap->messagecount($mbox, 'UNSEEN') : 0; + $mbox = $RCMAIL->storage->get_folder(); + $unseen_count = $msg_count ? $RCMAIL->storage->count($mbox, 'UNSEEN') : 0; $old_unseen = rcmail_get_unseen_count($mbox); if ($old_unseen != $unseen_count) { @@ -106,15 +112,16 @@ if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_va } $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox); - if ($RCMAIL->imap->threading) + if ($threading) { $count = get_input_value('_count', RCUBE_INPUT_POST); + } // add new rows from next page (if any) if ($count && $uids != '*' && ($jump_back || $nextpage_count > 0)) { $sort_col = isset($_SESSION['sort_col']) ? $_SESSION['sort_col'] : $CONFIG['message_sort_col']; $sort_order = isset($_SESSION['sort_order']) ? $_SESSION['sort_order'] : $CONFIG['message_sort_order']; - $a_headers = $RCMAIL->imap->list_headers($mbox, NULL, $sort_col, $sort_order, + $a_headers = $RCMAIL->storage->list_messages($mbox, NULL, $sort_col, $sort_order, $jump_back ? NULL : $count); rcmail_js_message_list($a_headers, false); diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc index 95a456ed5..63f27440f 100644 --- a/program/steps/mail/move_del.inc +++ b/program/steps/mail/move_del.inc @@ -24,8 +24,9 @@ if (!$OUTPUT->ajax_call) return; // count messages before changing anything -$old_count = $RCMAIL->imap->messagecount(NULL, $RCMAIL->imap->threading ? 'THREADS' : 'ALL'); -$old_pages = ceil($old_count / $RCMAIL->imap->page_size); +$threading = (bool) $RCMAIL->storage->get_threading(); +$old_count = $RCMAIL->storage->count(NULL, $threading ? 'THREADS' : 'ALL'); +$old_pages = ceil($old_count / $RCMAIL->storage->get_pagesize()); // move messages if ($RCMAIL->action=='moveto' && !empty($_POST['_uid']) && strlen($_POST['_target_mbox'])) { @@ -33,7 +34,7 @@ if ($RCMAIL->action=='moveto' && !empty($_POST['_uid']) && strlen($_POST['_targe $target = get_input_value('_target_mbox', RCUBE_INPUT_POST, true); $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true); - $moved = $RCMAIL->imap->move_message($uids, $target, $mbox); + $moved = $RCMAIL->storage->move_message($uids, $target, $mbox); if (!$moved) { // send error message @@ -54,7 +55,7 @@ else if ($RCMAIL->action=='delete' && !empty($_POST['_uid'])) { $count = sizeof(explode(',', ($uids = get_input_value('_uid', RCUBE_INPUT_POST)))); $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true); - $del = $RCMAIL->imap->delete_message($uids, $mbox); + $del = $RCMAIL->storage->delete_message($uids, $mbox); if (!$del) { // send error message @@ -75,9 +76,11 @@ else { exit; } +$search_request = get_input_value('_search', RCUBE_INPUT_GPC); + // refresh saved search set after moving some messages -if (($search_request = get_input_value('_search', RCUBE_INPUT_GPC)) && $RCMAIL->imap->search_set) { - $_SESSION['search'] = $RCMAIL->imap->refresh_search(); +if ($search_request && $RCMAIL->storage->get_search_set()) { + $_SESSION['search'] = $RCMAIL->storage->refresh_search(); } if ($_POST['_from'] == 'show') @@ -89,26 +92,29 @@ if ($_POST['_from'] == 'show') } else { - $msg_count = $RCMAIL->imap->messagecount(NULL, $RCMAIL->imap->threading ? 'THREADS' : 'ALL'); - $pages = ceil($msg_count / $RCMAIL->imap->page_size); - $nextpage_count = $old_count - $RCMAIL->imap->page_size * $RCMAIL->imap->list_page; - $remaining = $msg_count - $RCMAIL->imap->page_size * ($RCMAIL->imap->list_page - 1); + $msg_count = $RCMAIL->storage->count(NULL, $threading ? 'THREADS' : 'ALL'); + $page_size = $RCMAIL->storage->get_pagesize(); + $page = $RCMAIL->storage->get_page(); + $pages = ceil($msg_count / $page_size); + $nextpage_count = $old_count - $page_size * $page; + $remaining = $msg_count - $page_size * ($page - 1); // jump back one page (user removed the whole last page) - if ($RCMAIL->imap->list_page > 1 && $remaining == 0) { - $RCMAIL->imap->set_page($RCMAIL->imap->list_page-1); - $_SESSION['page'] = $RCMAIL->imap->list_page; + if ($page > 1 && $remaining == 0) { + $page -= 1; + $RCMAIL->storage->set_page($page); + $_SESSION['page'] = $page; $jump_back = true; } // update message count display $OUTPUT->set_env('messagecount', $msg_count); - $OUTPUT->set_env('current_page', $RCMAIL->imap->list_page); + $OUTPUT->set_env('current_page', $page); $OUTPUT->set_env('pagecount', $pages); // update mailboxlist - $mbox = $RCMAIL->imap->get_mailbox_name(); - $unseen_count = $msg_count ? $RCMAIL->imap->messagecount($mbox, 'UNSEEN') : 0; + $mbox = $RCMAIL->storage->get_folder(); + $unseen_count = $msg_count ? $RCMAIL->storage->count($mbox, 'UNSEEN') : 0; $old_unseen = rcmail_get_unseen_count($mbox); if ($old_unseen != $unseen_count) { @@ -123,15 +129,16 @@ else $OUTPUT->command('set_quota', rcmail_quota_content()); $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox); - if ($RCMAIL->imap->threading) + if ($threading) { $count = get_input_value('_count', RCUBE_INPUT_POST); + } // add new rows from next page (if any) if ($addrows && $count && $uids != '*' && ($jump_back || $nextpage_count > 0)) { $sort_col = isset($_SESSION['sort_col']) ? $_SESSION['sort_col'] : $CONFIG['message_sort_col']; $sort_order = isset($_SESSION['sort_order']) ? $_SESSION['sort_order'] : $CONFIG['message_sort_order']; - $a_headers = $RCMAIL->imap->list_headers($mbox, NULL, $sort_col, $sort_order, + $a_headers = $RCMAIL->storage->list_messages($mbox, NULL, $sort_col, $sort_order, $jump_back ? NULL : $count); rcmail_js_message_list($a_headers, false); diff --git a/program/steps/mail/pagenav.inc b/program/steps/mail/pagenav.inc index f15ac38de..e74298b88 100644 --- a/program/steps/mail/pagenav.inc +++ b/program/steps/mail/pagenav.inc @@ -20,14 +20,14 @@ */ $uid = get_input_value('_uid', RCUBE_INPUT_GET); -$index = $RCMAIL->imap->message_index(null, $_SESSION['sort_col'], $_SESSION['sort_order']); -$cnt = $index->countMessages(); +$index = $RCMAIL->storage->index(null, $_SESSION['sort_col'], $_SESSION['sort_order']); +$cnt = $index->count_messages(); if ($cnt && ($pos = $index->exists($uid, true)) !== false) { - $prev = $pos ? $index->getElement($pos-1) : 0; - $first = $pos ? $index->getElement('FIRST') : 0; - $next = $pos < $cnt-1 ? $index->getElement($pos+1) : 0; - $last = $pos < $cnt-1 ? $index->getElement('LAST') : 0; + $prev = $pos ? $index->get_element($pos-1) : 0; + $first = $pos ? $index->get_element('FIRST') : 0; + $next = $pos < $cnt-1 ? $index->get_element($pos+1) : 0; + $last = $pos < $cnt-1 ? $index->get_element('LAST') : 0; } // Set UIDs and activate navigation buttons diff --git a/program/steps/mail/search.inc b/program/steps/mail/search.inc index 42bdf9776..8835730e4 100644 --- a/program/steps/mail/search.inc +++ b/program/steps/mail/search.inc @@ -18,8 +18,8 @@ $REMOTE_REQUEST = TRUE; // reset list_page and old search results -$RCMAIL->imap->set_page(1); -$RCMAIL->imap->set_search_set(NULL); +$RCMAIL->storage->set_page(1); +$RCMAIL->storage->set_search_set(NULL); $_SESSION['page'] = 1; // using encodeURI with javascript "should" give us @@ -107,32 +107,32 @@ $search_str = trim($search_str); // execute IMAP search if ($search_str) - $RCMAIL->imap->search($mbox, $search_str, $imap_charset, $_SESSION['sort_col']); + $RCMAIL->storage->search($mbox, $search_str, $imap_charset, $_SESSION['sort_col']); // save search results in session if (!is_array($_SESSION['search'])) $_SESSION['search'] = array(); if ($search_str) { - $_SESSION['search'] = $RCMAIL->imap->get_search_set(); + $_SESSION['search'] = $RCMAIL->storage->get_search_set(); $_SESSION['last_text_search'] = $str; } $_SESSION['search_request'] = $search_request; // Get the headers -$result_h = $RCMAIL->imap->list_headers($mbox, 1, $_SESSION['sort_col'], $_SESSION['sort_order']); -$count = $RCMAIL->imap->messagecount($mbox, $RCMAIL->imap->threading ? 'THREADS' : 'ALL'); +$result_h = $RCMAIL->storage->list_messages($mbox, 1, $_SESSION['sort_col'], $_SESSION['sort_order']); +$count = $RCMAIL->storage->count($mbox, $RCMAIL->storage->get_threading() ? 'THREADS' : 'ALL'); // Make sure we got the headers if (!empty($result_h)) { rcmail_js_message_list($result_h); if ($search_str) - $OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $RCMAIL->imap->messagecount(NULL, 'ALL'))); + $OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $RCMAIL->storage->count(NULL, 'ALL'))); } // handle IMAP errors (e.g. #1486905) -else if ($err_code = $RCMAIL->imap->get_error_code()) { +else if ($err_code = $RCMAIL->storage->get_error_code()) { rcmail_display_server_error(); } else { @@ -142,8 +142,6 @@ else { // update message count display $OUTPUT->set_env('search_request', $search_str ? $search_request : ''); $OUTPUT->set_env('messagecount', $count); -$OUTPUT->set_env('pagecount', ceil($count/$RCMAIL->imap->page_size)); +$OUTPUT->set_env('pagecount', ceil($count/$RCMAIL->storage->get_pagesize())); $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count, 1), $mbox); $OUTPUT->send(); - - diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc index 953c7521a..ea673fdcf 100644 --- a/program/steps/mail/sendmail.inc +++ b/program/steps/mail/sendmail.inc @@ -634,9 +634,9 @@ if (!$savedraft) // set replied/forwarded flag if ($COMPOSE['reply_uid']) - $RCMAIL->imap->set_flag($COMPOSE['reply_uid'], 'ANSWERED', $COMPOSE['mailbox']); + $RCMAIL->storage->set_flag($COMPOSE['reply_uid'], 'ANSWERED', $COMPOSE['mailbox']); else if ($COMPOSE['forward_uid']) - $RCMAIL->imap->set_flag($COMPOSE['forward_uid'], 'FORWARDED', $COMPOSE['mailbox']); + $RCMAIL->storage->set_flag($COMPOSE['forward_uid'], 'FORWARDED', $COMPOSE['mailbox']); } // End of SMTP Delivery Block @@ -649,12 +649,12 @@ else if ($store_target) { // check if folder is subscribed - if ($RCMAIL->imap->mailbox_exists($store_target, true)) + if ($RCMAIL->storage->folder_exists($store_target, true)) $store_folder = true; // folder may be existing but not subscribed (#1485241) - else if (!$RCMAIL->imap->mailbox_exists($store_target)) - $store_folder = $RCMAIL->imap->create_mailbox($store_target, true); - else if ($RCMAIL->imap->subscribe($store_target)) + else if (!$RCMAIL->storage->folder_exists($store_target)) + $store_folder = $RCMAIL->storage->create_folder($store_target, true); + else if ($RCMAIL->storage->subscribe($store_target)) $store_folder = true; // append message to sent box @@ -684,7 +684,7 @@ if ($store_target) { 'message' => "Could not create message: ".$msg->getMessage()), TRUE, FALSE); else { - $saved = $RCMAIL->imap->save_message($store_target, $msg, $headers, $mailbody_file ? true : false); + $saved = $RCMAIL->storage->save_message($store_target, $msg, $headers, $mailbody_file ? true : false); } if ($mailbody_file) { @@ -708,11 +708,11 @@ if ($store_target) { if ($olddraftmessageid) { // delete previous saved draft // @TODO: use message UID (remember to check UIDVALIDITY) to skip this SEARCH - $delete_idx = $RCMAIL->imap->search_once($CONFIG['drafts_mbox'], + $delete_idx = $RCMAIL->storage->search_once($CONFIG['drafts_mbox'], 'HEADER Message-ID '.$olddraftmessageid); if ($del_uid = $delete_idx->getElement('FIRST')) { - $deleted = $RCMAIL->imap->delete_message($del_uid, $CONFIG['drafts_mbox']); + $deleted = $RCMAIL->storage->delete_message($del_uid, $CONFIG['drafts_mbox']); // raise error if deletion of old draft failed if (!$deleted) @@ -733,7 +733,7 @@ if ($savedraft) { // remember new draft-uid ($saved could be an UID or TRUE here) if (is_bool($saved)) { - $draft_idx = $RCMAIL->imap->search_once($CONFIG['drafts_mbox'], 'HEADER Message-ID '.$msgid); + $draft_idx = $RCMAIL->storage->search_once($CONFIG['drafts_mbox'], 'HEADER Message-ID '.$msgid); $saved = $draft_idx->getElement('FIRST'); } $COMPOSE['param']['draft_uid'] = $saved; diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index aee563d52..7a3d3cd7f 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -30,14 +30,14 @@ if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) { rcmail_message_error($uid); } - $mbox_name = $RCMAIL->imap->get_mailbox_name(); + $mbox_name = $RCMAIL->storage->get_folder(); // show images? rcmail_check_safe($MESSAGE); // set message charset as default if (!empty($MESSAGE->headers->charset)) - $RCMAIL->imap->set_charset($MESSAGE->headers->charset); + $RCMAIL->storage->set_charset($MESSAGE->headers->charset); $OUTPUT->set_pagetitle(abbreviate_string($MESSAGE->subject, 128, '...', true)); @@ -47,7 +47,7 @@ if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) { $OUTPUT->set_env('safemode', $MESSAGE->is_safe); $OUTPUT->set_env('sender', $MESSAGE->sender['string']); $OUTPUT->set_env('permaurl', rcmail_url('show', array('_uid' => $MESSAGE->uid, '_mbox' => $mbox_name))); - $OUTPUT->set_env('delimiter', $RCMAIL->imap->get_hierarchy_delimiter()); + $OUTPUT->set_env('delimiter', $RCMAIL->storage->get_hierarchy_delimiter()); $OUTPUT->set_env('mailbox', $mbox_name); // mimetypes supported by the browser (default settings) @@ -77,7 +77,7 @@ if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) { if ($MESSAGE->headers->mdn_to && empty($MESSAGE->headers->flags['MDNSENT']) && empty($MESSAGE->headers->flags['SEEN']) - && ($RCMAIL->imap->check_permflag('MDNSENT') || $RCMAIL->imap->check_permflag('*')) + && ($RCMAIL->storage->check_permflag('MDNSENT') || $RCMAIL->storage->check_permflag('*')) && $mbox_name != $CONFIG['drafts_mbox'] && $mbox_name != $CONFIG['sent_mbox'] ) { @@ -175,8 +175,8 @@ function rcmail_message_buttons() { global $MESSAGE, $RCMAIL, $CONFIG; - $mbox = $RCMAIL->imap->get_mailbox_name(); - $delim = $RCMAIL->imap->get_hierarchy_delimiter(); + $mbox = $RCMAIL->storage->get_folder(); + $delim = $RCMAIL->storage->get_hierarchy_delimiter(); $dbox = $CONFIG['drafts_mbox']; // the message is not a draft @@ -248,7 +248,7 @@ else if ($MESSAGE && $MESSAGE->headers && empty($MESSAGE->headers->flags['SEEN']) && ($RCMAIL->action == 'show' || ($RCMAIL->action == 'preview' && intval($CONFIG['preview_pane_mark_read']) == 0))) { - if ($RCMAIL->imap->set_flag($MESSAGE->uid, 'SEEN')) { + if ($RCMAIL->storage->set_flag($MESSAGE->uid, 'SEEN')) { if ($count = rcmail_get_unseen_count($mbox_name)) { rcmail_set_unseen_count($mbox_name, $count - 1); } diff --git a/program/steps/mail/viewsource.inc b/program/steps/mail/viewsource.inc index e2b4e1b61..c9aeac4c1 100644 --- a/program/steps/mail/viewsource.inc +++ b/program/steps/mail/viewsource.inc @@ -24,7 +24,7 @@ ob_end_clean(); // similar code as in program/steps/mail/get.inc if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) { - $headers = $RCMAIL->imap->get_headers($uid); + $headers = $RCMAIL->storage->get_message_headers($uid); $charset = $headers->charset ? $headers->charset : $CONFIG['default_charset']; header("Content-Type: text/plain; charset={$charset}"); @@ -44,7 +44,7 @@ if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) header("Content-Disposition: attachment; filename=\"$filename\""); } - $RCMAIL->imap->print_raw_body($uid); + $RCMAIL->storage->print_raw_body($uid); } else { |