diff options
author | Aleksander Machniak <alec@alec.pl> | 2012-07-09 12:19:38 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2012-07-09 13:36:32 +0200 |
commit | 84dfbf541f66a552e9f2d21dbc717df493f0a3b2 (patch) | |
tree | 0793cd6993a4671c1ef2d675665ced71a49948bf /program | |
parent | af32a2f5ece250427aa753b236e48784ffa07aba (diff) |
- Don't add attachments content into reply/forward/draft message body (#1488557)
Diffstat (limited to 'program')
-rw-r--r-- | program/include/rcube_message.php | 26 | ||||
-rw-r--r-- | program/steps/mail/compose.inc | 3 |
2 files changed, 28 insertions, 1 deletions
diff --git a/program/include/rcube_message.php b/program/include/rcube_message.php index 8f1432fb8..745019e18 100644 --- a/program/include/rcube_message.php +++ b/program/include/rcube_message.php @@ -278,6 +278,32 @@ class rcube_message /** + * Checks if part of the message is an attachment (or part of it) + * + * @param rcube_message_part $part Message part + * + * @return bool True if the part is an attachment part + */ + public function is_attachment($part) + { + foreach ($this->attachments as $att_part) { + if ($att_part->mime_id == $part->mime_id) { + return true; + } + + // check if the part is a subpart of another attachment part (message/rfc822) + if ($att_part->mimetype == 'message/rfc822') { + if (in_array($part, (array)$att_part->parts)) { + return true; + } + } + } + + return false; + } + + + /** * Read the message structure returend by the IMAP server * and build flat lists of content parts and attachments * diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 8152f5dca..8a4715715 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -632,7 +632,8 @@ function rcmail_prepare_message_body() if (!empty($MESSAGE->parts)) { foreach ($MESSAGE->parts as $part) { - if ($part->type != 'content' || !$part->size) { + // skip no-content and attachment parts (#1488557) + if ($part->type != 'content' || !$part->size || $MESSAGE->is_attachment($part)) { continue; } |