diff options
Diffstat (limited to 'program/steps/mail')
-rw-r--r-- | program/steps/mail/func.inc | 22 | ||||
-rw-r--r-- | program/steps/mail/show.inc | 5 |
2 files changed, 15 insertions, 12 deletions
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 21f0fede7..d82c8ef71 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -93,6 +93,8 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') $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 ($CONFIG['trash_mbox']) $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']); @@ -686,18 +688,16 @@ function rcmail_wash_html($html, $p = array(), $cid_replaces) $html = preg_replace_callback('/(<[\/!]*)([^ >]+)/', 'rcmail_html_tag_callback', $html); // charset was converted to UTF-8 in rcube_imap::get_message_part(), - // -> change charset specification in HTML accordingly - $charset_pattern = '(content=[\'"]?\w+\/\w+;\s*charset)=([a-z0-9-_]+)'; - if (preg_match("/<meta\s+[^>]*$charset_pattern/Ui", $html)) { - $html = preg_replace("/\s+$charset_pattern/i", '\\1='.RCMAIL_CHARSET, $html); + // change charset specification in HTML accordingly + $charset_pattern = '/(\s+content=[\'"]?\w+\/\w+;\s*charset)=([a-z0-9-_]+)/i'; + if (preg_match($charset_pattern, $html)) { + $html = preg_replace($charset_pattern, '\\1='.RCMAIL_CHARSET, $html); } - else { - // add meta content-type to malformed messages, washtml cannot work without that - if (!preg_match('/<head[^>]*>(.*)<\/head>/Uims', $html)) - $html = '<head></head>'. $html; - $html = substr_replace($html, '<meta http-equiv="Content-Type" content="text/html; charset='.RCMAIL_CHARSET.'" />', intval(stripos($html, '<head>')+6), 0); - } - + // add head for malformed messages, washtml cannot work without that + if (!preg_match('/<head[^>]*>(.*)<\/head>/Uims', $html)) + $html = '<head></head>'. $html; + $html = substr_replace($html, '<meta http-equiv="Content-Type" content="text/html; charset='.RCMAIL_CHARSET.'" />', intval(stripos($html, '<head>')+6), 0); + // turn relative into absolute urls $html = rcmail_resolve_base($html); diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index 068ccbcd7..88961e9aa 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -78,7 +78,7 @@ if ($_GET['_uid']) { $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']); 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 && @@ -143,6 +143,9 @@ if ($_GET['_uid']) { $OUTPUT->set_env('last_uid', $last); } + if ($CONFIG['display_next']) + $OUTPUT->set_env('display_next', true); + if (!$MESSAGE->headers->seen) $RCMAIL->plugins->exec_hook('message_read', array('uid' => $MESSAGE->uid, 'mailbox' => $IMAP->mailbox, 'message' => $MESSAGE)); |