Fix structure parsing and html output for multipart messages

release-0.6
thomascube 17 years ago
parent 077070381f
commit cfe4a6baf4

@ -1074,7 +1074,7 @@ class rcube_imap
$struct->ctype_primary = 'multipart';
// find first non-array entry
for ($i=1; count($part); $i++)
for ($i=1; $i<count($part); $i++)
if (!is_array($part[$i]))
{
$struct->ctype_secondary = strtolower($part[$i]);
@ -1085,7 +1085,7 @@ class rcube_imap
$struct->parts = array();
for ($i=0, $count=0; $i<count($part); $i++)
if (is_array($part[$i]) && count($part[$i]) > 5)
if (is_array($part[$i]) && count($part[$i]) > 3)
$struct->parts[] = $this->_structure_part($part[$i], ++$count, $struct->mime_id);
return $struct;

@ -2570,8 +2570,7 @@ function iil_C_FetchStructureString(&$conn, $folder, $id) {
$result .= $line;
} while (!preg_match("/^$key/", $line));
$result = trim(substr($result, strpos($result, 'BODYSTRUCTURE')+13,
-(strlen($result)-strrpos($result, $key)-2)));
$result = trim(substr($result, strpos($result, 'BODYSTRUCTURE')+13, -(strlen($result)-strrpos($result, $key)+1)));
}
}
return $result;

@ -549,6 +549,7 @@ function rcmail_print_body($part, $safe=false, $plain=false)
}
// text/enriched
else if ($part->ctype_secondary=='enriched') {
$part->ctype_secondary = 'html';
return Q(enriched_to_html($body), 'show');
}
else
@ -645,6 +646,10 @@ function rcmail_message_headers($attrib, $headers=NULL)
// get associative array of headers object
if (!$headers)
$headers = is_object($MESSAGE->headers) ? get_object_vars($MESSAGE->headers) : $MESSAGE->headers;
// add empty subject if none exsists
if (empty($headers['subject']))
$headers['subject'] = rcube_label('nosubject');
$header_count = 0;
@ -720,7 +725,7 @@ function rcmail_message_body($attrib)
$body = rcmail_print_body($part, $safe_mode, !$CONFIG['prefer_html']);
if ($part->ctype_secondary != 'plain')
if ($part->ctype_secondary == 'html')
$out .= html::div('message-htmlpart', rcmail_html4inline($body, $attrib['id']));
else
$out .= html::div('message-part', $body);
@ -728,7 +733,7 @@ function rcmail_message_body($attrib)
}
}
else
$out .= html::div('message-part', html::div('pre', $MESSAGE->body));
$out .= html::div('message-part', html::div('pre', Q($MESSAGE->body)));
$ctype_primary = strtolower($MESSAGE->structure->ctype_primary);

@ -677,7 +677,8 @@ div.message-part
border-top: 0;
}
div.message-part a
div.message-part a,
div.message-htmlpart a
{
color: #0000CC;
}

Loading…
Cancel
Save