alecpl
2010-06-30 3e58bf2062be1323d7c7c021d40255458e28e74d
program/include/rcube_message.php
@@ -488,6 +488,11 @@
        else if ($structure->filename) {
            $this->attachments[] = $structure;
        }
        // message is a single part non-text (without filename)
        else if (preg_match('/application\//i', $mimetype)) {
            $structure->filename = 'Part '.$structure->mime_id;
            $this->attachments[] = $structure;
        }
    }
@@ -500,7 +505,7 @@
    {
        if (strlen($part->mime_id))
            $this->mime_parts[$part->mime_id] = &$part;
        if (is_array($part->parts))
            for ($i=0; $i<count($part->parts); $i++)
                $this->get_mime_numbers($part->parts[$i]);
@@ -518,18 +523,17 @@
        if (!isset($part->body))
            $part->body = $this->imap->get_message_part($this->uid, $part->mime_id, $part);
        require_once('lib/tnef_decoder.inc');
        $parts = array();
        $tnef_arr = tnef_decode($part->body);
        $tnef = new tnef_decoder;
        $tnef_arr = $tnef->decompress($part->body);
        foreach ($tnef_arr as $pid => $winatt) {
            $tpart = new rcube_message_part;
            $tpart->filename        = trim($winatt['name']);
            $tpart->encoding        = 'stream';
            $tpart->ctype_primary   = trim(strtolower($winatt['type0']));
            $tpart->ctype_secondary = trim(strtolower($winatt['type1']));
            $tpart->ctype_primary   = trim(strtolower($winatt['type']));
            $tpart->ctype_secondary = trim(strtolower($winatt['subtype']));
            $tpart->mimetype        = $tpart->ctype_primary . '/' . $tpart->ctype_secondary;
            $tpart->mime_id         = 'winmail.' . $part->mime_id . '.' . $pid;
            $tpart->size            = $winatt['size'];
@@ -538,7 +542,7 @@
            $parts[] = $tpart;
            unset($tnef_arr[$pid]);
        }
        return $parts;
    }
@@ -584,7 +588,7 @@
                unset($matches[$pid]);
            }
        }
        return $parts;
    }