summaryrefslogtreecommitdiff
path: root/program/steps/mail/get.inc
diff options
context:
space:
mode:
Diffstat (limited to 'program/steps/mail/get.inc')
-rw-r--r--program/steps/mail/get.inc18
1 files changed, 11 insertions, 7 deletions
diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc
index e1ae281e4..995a4857f 100644
--- a/program/steps/mail/get.inc
+++ b/program/steps/mail/get.inc
@@ -88,15 +88,20 @@ else if ($pid = get_input_value('_part', RCUBE_INPUT_GET))
if ($ctype_primary=='text' && $ctype_secondary=='html')
{
// we have to analyze the whole structure again to find inline objects
- list($MESSAGE['parts']) = rcmail_parse_message($MESSAGE['structure'],
- array('safe' => (bool)$_GET['_safe'],
- 'prefer_html' => TRUE,
- 'get_url' => $GET_URL.'&_part=%s'));
- $part = &$MESSAGE['parts'][0];
+ list($new_parts, $new_attachments) =
+ rcmail_parse_message($MESSAGE['structure'],
+ array('safe' => (bool)$_GET['_safe'],
+ 'prefer_html' => TRUE,
+ 'get_url' => $GET_URL.'&_part=%s'));
+
+ $all_parts = array_merge($new_parts, $new_attachments);
+ for ($partix = 0; $partix < sizeof($all_parts); $partix++)
+ if ($all_parts[$partix]->mime_id == $pid)
+ $part = &$all_parts[$partix];
// get part body if not available
if (!$part->body)
- $part->body = $IMAP->get_message_part($MESSAGE['UID'], $part->mime_id, $part);
+ $part->body = $IMAP->get_message_part($MESSAGE['UID'], $part->mime_id, $part);
$OUTPUT = new rcube_html_page();
$OUTPUT->write(rcmail_print_body($part, (bool)$_GET['_safe']));
@@ -104,7 +109,6 @@ else if ($pid = get_input_value('_part', RCUBE_INPUT_GET))
else
{
// turn off output buffering and print part content
- //@ob_end_clean();
$IMAP->get_message_part($MESSAGE['UID'], $part->mime_id, $part->encoding, true);
}