From 8b92d2b0507a98dfd380553c64765bcfdecc6fe3 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 25 Jan 2012 15:18:15 -0500
Subject: [PATCH] Add lib for server side mime parsing (to be used by non-imap storage backends or as fallback if imap server doesn't provide a proper structure)

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

diff --git a/program/include/rcube_message.php b/program/include/rcube_message.php
index abc6b59..d0959ef 100644
--- a/program/include/rcube_message.php
+++ b/program/include/rcube_message.php
@@ -40,11 +40,11 @@
     private $app;
 
     /**
-     * Instance of imap class
+     * Instance of storage class
      *
-     * @var rcube_imap
+     * @var rcube_storage
      */
-    private $imap;
+    private $storage;
 
     /**
      * Instance of mime class
@@ -73,7 +73,7 @@
      *
      * @param string $uid The message UID.
      *
-     * @see self::$app, self::$imap, self::$opt, self::$structure
+     * @see self::$app, self::$storage, self::$opt, self::$parts
      */
     function __construct($uid)
     {
@@ -172,7 +172,7 @@
     {
         if ($part = $this->mime_parts[$mime_id]) {
             // stored in message structure (winmail/inline-uuencode)
-            if ($part->encoding == 'stream') {
+            if (!empty($part->body) || $part->encoding == 'stream') {
                 if ($fp) {
                     fwrite($fp, $part->body);
                 }
@@ -214,7 +214,7 @@
         foreach ($this->mime_parts as $mime_id => $part) {
             $mimetype = strtolower($part->ctype_primary . '/' . $part->ctype_secondary);
             if ($mimetype == 'text/html') {
-                return $this->storage->get_message_part($this->uid, $mime_id, $part);
+                return $this->get_part_content($mime_id);
             }
         }
     }
@@ -237,10 +237,10 @@
             $mimetype = $part->ctype_primary . '/' . $part->ctype_secondary;
 
             if ($mimetype == 'text/plain') {
-                return $this->storage->get_message_part($this->uid, $mime_id, $part);
+                return $this->get_part_content($mime_id);
             }
             else if ($mimetype == 'text/html') {
-                $out = $this->storage->get_message_part($this->uid, $mime_id, $part);
+                $out = $this->get_part_content($mime_id);
 
                 // remove special chars encoding
                 $trans = array_flip(get_html_translation_table(HTML_ENTITIES));
@@ -258,7 +258,7 @@
 
 
     /**
-     * Raad the message structure returend by the IMAP server
+     * Read the message structure returend by the IMAP server
      * and build flat lists of content parts and attachments
      *
      * @param rcube_message_part $structure Message structure node

--
Gitblit v1.9.1