From d125f864ea31cf0b6ecce462f711467fc6441747 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Fri, 25 Mar 2016 08:41:11 -0400 Subject: [PATCH] Message/rfc822 previewer compatibility with Enigma --- program/steps/mail/get.inc | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc index 019c063..0191502 100644 --- a/program/steps/mail/get.inc +++ b/program/steps/mail/get.inc @@ -63,9 +63,14 @@ )); $mimetype = $part ? rcmail_fix_mimetype($part->mimetype) : ''; - if ($part_id && $mimetype == 'message/rfc822') { + + // message/rfc822 preview (Note: handle also multipart/ parts, they can + // come from Enigma, which replaces message/rfc822 with real mimetype) + if ($part_id && ($mimetype == 'message/rfc822' || strpos($mimetype, 'multipart/') === 0)) { $uid = preg_replace('/\.[0-9.]+/', '', $uid); $uid .= '.' . $part_id; + + $OUTPUT->set_env('is_message', true); } $OUTPUT->set_env('mailbox', $RCMAIL->storage->get_folder()); @@ -458,9 +463,8 @@ { global $RCMAIL; - $mimetype = $RCMAIL->output->get_env('mimetype'); - if ($mimetype == 'message/rfc822') { + if ($RCMAIL->output->get_env('is_message')) { $attrib['src'] = $RCMAIL->url(array( 'task' => 'mail', 'action' => 'preview', @@ -470,6 +474,7 @@ )); } else { + $mimetype = $RCMAIL->output->get_env('mimetype'); $frame_replace = strpos($mimetype, 'text/') === 0 ? '_embed=' : '_preload='; $attrib['src'] = './?' . str_replace('_frame=', $frame_replace, $_SERVER['QUERY_STRING']); } -- Gitblit v1.9.1