From 0816567dac1beb14bd5abc95a67f915583a99f33 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Thu, 27 Aug 2009 04:08:27 -0400 Subject: [PATCH] Only allow images as 'inline' parts; list other parts as attachments if they have a valid mime type --- program/include/rcube_message.php | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) diff --git a/program/include/rcube_message.php b/program/include/rcube_message.php index 374dc90..7c2457e 100644 --- a/program/include/rcube_message.php +++ b/program/include/rcube_message.php @@ -323,8 +323,16 @@ $p->ctype_primary = 'text'; $p->ctype_secondary = 'plain'; $p->body = rcube_label('encryptedmessage'); + $p->size = strlen($p->body); - $this->parts[] = $p; + // maybe some plugins are able to decode this encrypted message part + $data = $this->app->plugins->exec_hook('message_part_encrypted', array('object' => $this, 'struct' => $structure, 'part' => $p)); + if (is_array($data['parts'])) { + $this->parts = array_merge($this->parts, $data['parts']); + } + else if ($data['part']) { + $this->parts[] = $p; + } } // message contains multiple parts else if (is_array($structure->parts) && !empty($structure->parts)) { @@ -384,16 +392,17 @@ // part belongs to a related message and is linked if ($message_ctype_secondary == 'related' - && ($mail_part->headers['content-id'] || $mail_part->headers['content-location'])) { + && preg_match('!^image/!', $mail_part->mimetype) + && ($mail_part->headers['content-id'] || $mail_part->headers['content-location'])) { if ($mail_part->headers['content-id']) $mail_part->content_id = preg_replace(array('/^</', '/>$/'), '', $mail_part->headers['content-id']); if ($mail_part->headers['content-location']) $mail_part->content_location = $mail_part->headers['content-base'] . $mail_part->headers['content-location']; - + $this->inline_parts[] = $mail_part; } // is a regular attachment - else { + else if (preg_match('!^[a-z]+/[a-z0-9-.]+$!i', $mail_part->mimetype)) { if (!$mail_part->filename) $mail_part->filename = 'Part '.$mail_part->mime_id; $this->attachments[] = $mail_part; -- Gitblit v1.9.1