From 5f8686e28e4acad3f196fd531a9a102291dbf448 Mon Sep 17 00:00:00 2001 From: alecpl Date: Mon, 16 Jun 2008 09:53:33 +0000 Subject: #1484423: add for malformed messages, washtml cannot work without that --- program/steps/mail/func.inc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'program/steps/mail') diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index a27023f27..bf1a610a4 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -538,9 +538,13 @@ function rcmail_print_body($part, $safe=false, $plain=false) $html = $part->body; if(preg_match('/(\s+content=[\'"]\w+\/\w+;\s+charset)=([a-z0-9-]+)/i', $html)) $html = preg_replace('/(\s+content=[\'"]\w+\/\w+;\s+charset)=([a-z0-9-]+)/i', '\\1='.RCMAIL_CHARSET, $html); - else + else { + // add for malformed messages, washtml cannot work without that + if (!preg_match('/(.*)<\/head>/m', $html)) + $html = '' . $html; $html = substr_replace($html, '', intval(stripos($html, '')), 0); - + } + // clean HTML with washhtml by Frederic Motte $body = washtml::wash($html, array( 'show_washed' => false, @@ -700,7 +704,7 @@ function rcmail_message_headers($attrib, $headers=NULL) function rcmail_message_body($attrib) { global $CONFIG, $OUTPUT, $MESSAGE, $IMAP, $REMOTE_OBJECTS; - + if (!is_array($MESSAGE->parts) && empty($MESSAGE->body)) return ''; @@ -731,7 +735,7 @@ function rcmail_message_body($attrib) $part->body = $MESSAGE->get_part_content($part->mime_id); $body = rcmail_print_body($part, $safe_mode, !$CONFIG['prefer_html']); - + if ($part->ctype_secondary == 'html') $out .= html::div('message-htmlpart', rcmail_html4inline($body, $attrib['id'])); else -- cgit v1.2.3