From f8101fff1ec4a52bde553e77a120fd8618c025aa Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Fri, 15 Nov 2013 12:58:32 -0500
Subject: [PATCH] Accept text/html parts inside multipart/mixed parts as HTML contents

---
 program/lib/Roundcube/rcube_message.php |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/program/lib/Roundcube/rcube_message.php b/program/lib/Roundcube/rcube_message.php
index 2780076..f24ec3e 100644
--- a/program/lib/Roundcube/rcube_message.php
+++ b/program/lib/Roundcube/rcube_message.php
@@ -211,16 +211,19 @@
                 }
 
                 $level = explode('.', $part->mime_id);
+                $depth = count($level);
 
                 // Check if the part belongs to higher-level's multipart part
-                // this can be alternative/related/signed/encrypted, but not mixed
+                // this can be alternative/related/signed/encrypted or mixed
                 while (array_pop($level) !== null) {
-                    if (!count($level)) {
+                    $parent_depth = count($level);
+                    if (!$parent_depth) {
                         return true;
                     }
 
                     $parent = $this->mime_parts[join('.', $level)];
-                    if (!preg_match('/^multipart\/(alternative|related|signed|encrypted)$/', $parent->mimetype)) {
+                    if (!preg_match('/^multipart\/(alternative|related|signed|encrypted|mixed)$/', $parent->mimetype)
+                        || ($parent->mimetype == 'multipart/mixed' && $parent_depth < $depth - 1)) {
                         continue 2;
                     }
                 }

--
Gitblit v1.9.1