summaryrefslogtreecommitdiff
path: root/program/include/rcube_message.php
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2010-06-15 06:53:28 +0000
committeralecpl <alec@alec.pl>2010-06-15 06:53:28 +0000
commitf19d86b96da4a73efa88042dd0bcf0da1a214762 (patch)
tree393752ab7e3510712b32380b17ca2d8a994b47be /program/include/rcube_message.php
parent1aaeaaaaa65e8191923dec8448cbc42fefa52be0 (diff)
- Fix attachment filenames broken with TNEF decoder using long filenames (#1486795)
- Use tnef_decoder class from Horde
Diffstat (limited to 'program/include/rcube_message.php')
-rw-r--r--program/include/rcube_message.php15
1 files changed, 7 insertions, 8 deletions
diff --git a/program/include/rcube_message.php b/program/include/rcube_message.php
index e51ab26e0..c3753b290 100644
--- a/program/include/rcube_message.php
+++ b/program/include/rcube_message.php
@@ -500,7 +500,7 @@ class rcube_message
{
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 +518,17 @@ class rcube_message
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 +537,7 @@ class rcube_message
$parts[] = $tpart;
unset($tnef_arr[$pid]);
}
-
+
return $parts;
}
@@ -584,7 +583,7 @@ class rcube_message
unset($matches[$pid]);
}
}
-
+
return $parts;
}