| | |
| | | } |
| | | } |
| | | |
| | | send_nocacheing_headers(); |
| | | |
| | | $mbox_name = $IMAP->get_mailbox_name(); |
| | | |
| | | // show images? |
| | | rcmail_check_safe($MESSAGE); |
| | | |
| | | // calculate Etag for this request |
| | | $etag = md5($MESSAGE->uid.$mbox_name.session_id() |
| | | .intval($MESSAGE->headers->mdn_sent) |
| | | .intval($MESSAGE->is_safe) |
| | | .(!empty($MESSAGE->attachments) ? intval($CONFIG['inline_images']) : '') |
| | | .intval($PRINT_MODE) |
| | | .$_SESSION['sort_col'].$_SESSION['sort_order'] |
| | | .$IMAP->messagecount($mbox_name, 'ALL', true) |
| | | ); |
| | | |
| | | // allow caching, unless remote images are present |
| | | if ((bool)$MESSAGE->is_safe) |
| | | send_nocacheing_headers(); |
| | | else if (empty($CONFIG['devel_mode'])) |
| | | send_modified_header($_SESSION['login_time'], $etag, !$MESSAGE->headers->seen); |
| | | |
| | | // set message charset as default |
| | | if (!empty($MESSAGE->headers->charset)) |
| | |
| | | $OUTPUT->set_env('sender', $MESSAGE->sender['string']); |
| | | $OUTPUT->set_env('permaurl', rcmail_url('show', array('_uid' => $MESSAGE->uid, '_mbox' => $mbox_name))); |
| | | $OUTPUT->set_env('mailbox', $mbox_name); |
| | | |
| | | if ($CONFIG['trash_mbox']) |
| | | $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']); |
| | | if ($CONFIG['flag_for_deletion']) |
| | | $OUTPUT->set_env('flag_for_deletion', true); |
| | | if ($CONFIG['read_when_deleted']) |
| | | $OUTPUT->set_env('read_when_deleted', true); |
| | | if ($CONFIG['skip_deleted']) |
| | | $OUTPUT->set_env('skip_deleted', true); |
| | | if ($CONFIG['display_next']) |
| | | $OUTPUT->set_env('display_next', true); |
| | | |
| | | if (!$OUTPUT->ajax_call) |
| | | $OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash', 'movingmessage'); |
| | | |
| | | |
| | | // check for unset disposition notification |
| | | if ($MESSAGE->headers->mdn_to && |
| | | !$MESSAGE->headers->mdn_sent && !$MESSAGE->headers->seen && |
| | |
| | | $next = $prev = $first = $last = -1; |
| | | |
| | | if ($_SESSION['sort_col'] == 'date' && $_SESSION['sort_order'] != 'DESC' |
| | | && empty($_REQUEST['_search']) && !$IMAP->skip_deleted) |
| | | && empty($_REQUEST['_search']) && !$CONFIG['skip_deleted'] && !$IMAP->threading) |
| | | { |
| | | // this assumes that we are sorted by date_DESC |
| | | $cnt = $IMAP->messagecount(); |
| | |
| | | |
| | | $MESSAGE->index = array_search($IMAP->get_id($MESSAGE->uid), $a_msg_index); |
| | | |
| | | $prev = isset($a_msg_index[$MESSAGE->index-1]) ? $IMAP->get_uid($a_msg_index[$MESSAGE->index-1]) : -1 ; |
| | | $first = count($a_msg_index)>0 ? $IMAP->get_uid($a_msg_index[0]) : -1; |
| | | $next = isset($a_msg_index[$MESSAGE->index+1]) ? $IMAP->get_uid($a_msg_index[$MESSAGE->index+1]) : -1 ; |
| | | $last = count($a_msg_index)>0 ? $IMAP->get_uid($a_msg_index[count($a_msg_index)-1]) : -1; |
| | | $count = count($a_msg_index); |
| | | $prev = isset($a_msg_index[$MESSAGE->index-1]) ? $IMAP->get_uid($a_msg_index[$MESSAGE->index-1]) : -1; |
| | | $first = $count > 1 ? $IMAP->get_uid($a_msg_index[0]) : -1; |
| | | $next = isset($a_msg_index[$MESSAGE->index+1]) ? $IMAP->get_uid($a_msg_index[$MESSAGE->index+1]) : -1; |
| | | $last = $count > 1 ? $IMAP->get_uid($a_msg_index[$count-1]) : -1; |
| | | } |
| | | |
| | | if ($prev > 0) |
| | |
| | | |
| | | if (!$MESSAGE->headers->seen) |
| | | $RCMAIL->plugins->exec_hook('message_read', array('uid' => $MESSAGE->uid, |
| | | 'mailbox' => $IMAP->mailbox, 'message' => $MESSAGE)); |
| | | 'mailbox' => $mbox_name, 'message' => $MESSAGE)); |
| | | } |
| | | |
| | | |
| | |
| | | $ol .= html::tag('li', null, sprintf("%s (%s)", Q($attach_prop->filename), Q(show_bytes($attach_prop->size)))); |
| | | } |
| | | else { |
| | | if (rc_strlen($attach_prop->filename) > 50) { |
| | | if (mb_strlen($attach_prop->filename) > 50) { |
| | | $filename = abbreviate_string($attach_prop->filename, 50); |
| | | $title = $attach_prop->filename; |
| | | } |