summaryrefslogtreecommitdiff
path: root/roundcubemail/program/include/rcube_message.php
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-06-15 06:53:28 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-06-15 06:53:28 +0000
commitb9ba463a2d9408b6985573269459b1adb47c242f (patch)
treef51eb2e8a715ee4efa40d73269a8ba442acea5b5 /roundcubemail/program/include/rcube_message.php
parent94f9230ef8ce29ed587215fe12b2c4e8bdca882b (diff)
- Fix attachment filenames broken with TNEF decoder using long filenames (#1486795)
- Use tnef_decoder class from Horde git-svn-id: https://svn.roundcube.net/trunk@3752 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/include/rcube_message.php')
-rw-r--r--roundcubemail/program/include/rcube_message.php15
1 files changed, 7 insertions, 8 deletions
diff --git a/roundcubemail/program/include/rcube_message.php b/roundcubemail/program/include/rcube_message.php
index e51ab26e0..c3753b290 100644
--- a/roundcubemail/program/include/rcube_message.php
+++ b/roundcubemail/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;
}