From 9840ab69e484d7c59f3ea734513d12d522839e62 Mon Sep 17 00:00:00 2001 From: alecpl Date: Tue, 14 Dec 2010 07:37:52 +0000 Subject: - Fix charset conversion for text attachments without charset specification (#1487634) --- program/include/rcube_imap.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'program') diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index 83c34bc3c..5aa23fa73 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -2429,20 +2429,21 @@ class rcube_imap // TODO: Add caching for message parts - if (!$part) $part = 'TEXT'; + if (!$part) { + $part = 'TEXT'; + } $body = $this->conn->handlePartBody($this->mailbox, $uid, true, $part, $o_part->encoding, $print, $fp); - if ($fp || $print) + if ($fp || $print) { return true; + } - // convert charset (if text or message part) - if ($body && ($o_part->ctype_primary == 'text' || $o_part->ctype_primary == 'message')) { - // assume default if no charset specified - if (empty($o_part->charset) || strtolower($o_part->charset) == 'us-ascii') - $o_part->charset = $this->default_charset; - + // convert charset (if text or message part) and part's charset is specified + if ($body && $o_part->charset + && preg_match('/^(text|message)$/', $o_part->ctype_primary) + ) { $body = rcube_charset_convert($body, $o_part->charset); } -- cgit v1.2.3