X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fdownload.php;h=8e9ed13c9a76b36e5559689753ab4350f40c9112;hb=879694a5dec8ecc4fa9156d7fd30eee9788067ac;hp=28fe5c809d957455bcb25e446ab0183fff915208;hpb=76911253eb850bacde3d86c8cb7b4af072e67ebe;p=squirrelmail.git diff --git a/src/download.php b/src/download.php index 28fe5c80..8e9ed13c 100644 --- a/src/download.php +++ b/src/download.php @@ -50,18 +50,26 @@ if (!is_object($message)) { $message = sqimap_get_message($imapConnection,$passed_id, $mailbox); } $subject = $message->rfc822_header->subject; -$message = &$message->getEntity($ent_id); -$header = $message->header; -if ($message->rfc822_header) { - $subject = $message->rfc822_header->subject; - $charset = $header->content_type->properties['charset']; +if ($ent_id) { + $message = &$message->getEntity($ent_id); + $header = $message->header; + + if ($message->rfc822_header) { + $subject = $message->rfc822_header->subject; + $charset = $header->content_type->properties['charset']; + } else { + $header = $message->header; + $charset = $header->getParameter('charset'); + } + $type0 = $header->type0; + $type1 = $header->type1; + $encoding = strtolower($header->encoding); } else { - $header = $message->header; - $charset = $header->getParameter('charset'); + /* raw message */ + $type0 = 'message'; + $type1 = 'rfc822'; + $encoding = "US-ASCII"; } -$type0 = $header->type0; -$type1 = $header->type1; -$encoding = strtolower($header->encoding); /* * lets redefine message as this particular entity that we wish to display. @@ -81,7 +89,13 @@ if (is_object($message->header->disposition)) { if (!$filename) { $filename = decodeHeader($header->disposition->getProperty('name')); } + if (!$filename) { + $filename = decodeHeader($header->getParameter('name')); + } +} else { + $filename = decodeHeader($header->getParameter('name')); } + if (strlen($filename) < 1) { if ($type1 == 'plain' && $type0 == 'text') { $suffix = 'txt';