From c1439f925dbfbd20566337a0251a6b4e85e9a2f9 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 20 May 2010 03:10:42 -0400
Subject: [PATCH] - Fix message/rfc822 attachments containing only attachments are not parsed properly (#1486743)

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

diff --git a/program/include/rcube_message.php b/program/include/rcube_message.php
index 8cb7b02..05b0151 100644
--- a/program/include/rcube_message.php
+++ b/program/include/rcube_message.php
@@ -393,7 +393,7 @@
         // ignore "virtual" protocol parts
         else if ($primary_type == 'protocol')
           continue;
-          
+
         // part is Microsoft Outlook TNEF (winmail.dat)
         else if ($part_mimetype == 'application/ms-tnef') {
           foreach ((array)$this->imap->tnef_decode($mail_part, $structure->headers['uid']) as $tnef_part) {
@@ -401,7 +401,6 @@
             $this->attachments[] = $tnef_part;
           }
         }
-
         // part is a file/attachment
         else if (preg_match('/^(inline|attach)/', $mail_part->disposition) ||
                  $mail_part->headers['content-id'] || (empty($mail_part->disposition) && $mail_part->filename)) {
@@ -418,9 +417,13 @@
               $mail_part->content_id = preg_replace(array('/^</', '/>$/'), '', $mail_part->headers['content-id']);
             if ($mail_part->headers['content-location'])
               $mail_part->content_location = $mail_part->headers['content-base'] . $mail_part->headers['content-location'];
-              
+
             $this->inline_parts[] = $mail_part;
           }
+          // attachment encapsulated within message/rfc822 part needs further decoding (#1486743)
+          else if ($part_orig_mimetype == 'message/rfc822') {
+            $this->parse_structure($mail_part, true);
+          }
           // is a regular attachment
           else if (preg_match('!^[a-z0-9-.+]+/[a-z0-9-.+]+$!i', $part_mimetype)) {
             if (!$mail_part->filename)

--
Gitblit v1.9.1