summaryrefslogtreecommitdiff
path: root/plugins/zipdownload/zipdownload.php
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/zipdownload/zipdownload.php')
-rw-r--r--plugins/zipdownload/zipdownload.php23
1 files changed, 15 insertions, 8 deletions
diff --git a/plugins/zipdownload/zipdownload.php b/plugins/zipdownload/zipdownload.php
index 59431267d..3e3516e49 100644
--- a/plugins/zipdownload/zipdownload.php
+++ b/plugins/zipdownload/zipdownload.php
@@ -106,9 +106,20 @@ class zipdownload extends rcube_plugin
$zip->open($tmpfname, ZIPARCHIVE::OVERWRITE);
foreach ($message->attachments as $part) {
- $pid = $part->mime_id;
- $part = $message->mime_parts[$pid];
- $disp_name = $this->_convert_filename($part->filename);
+ $pid = $part->mime_id;
+ $part = $message->mime_parts[$pid];
+ $filename = $part->filename;
+
+ if ($filename === null || $filename === '') {
+ $ext = (array) rcube_mime::get_mime_extensions($part->mimetype);
+ $ext = array_shift($ext);
+ $filename = $rcmail->gettext('messagepart') . ' ' . $pid;
+ if ($ext) {
+ $filename .= '.' . $ext;
+ }
+ }
+
+ $disp_name = $this->_convert_filename($filename);
if ($part->body) {
$orig_message_raw = $part->body;
@@ -205,11 +216,7 @@ class zipdownload extends rcube_plugin
$subject = $this->_convert_filename($subject);
$subject = substr($subject, 0, 16);
- if (isset($subject) && $subject !="")
- $disp_name = $subject . ".eml";
- else
- $disp_name = "message_rfc822.eml";
-
+ $disp_name = ($subject ? $subject : 'message_rfc822') . ".eml";
$disp_name = $uid . "_" . $disp_name;
$tmpfn = tempnam($temp_dir, 'zipmessage');