| | |
| | | // reply/edit/draft/forward |
| | | else if ($compose_mode && ($compose_mode != RCUBE_COMPOSE_REPLY || intval($RCMAIL->config->get('reply_mode')) != -1)) { |
| | | $isHtml = rcmail_compose_editor_mode(); |
| | | $messages = array(); |
| | | |
| | | if (!empty($MESSAGE->parts)) { |
| | | // collect IDs of message/rfc822 parts |
| | | if ($compose_mode == RCUBE_COMPOSE_EDIT || $compose_mode == RCUBE_COMPOSE_DRAFT) { |
| | | foreach ($MESSAGE->attachments as $part) { |
| | | if ($part->mimetype == 'message/rfc822') { |
| | | $messages[] = $part->mime_id; |
| | | } |
| | | } |
| | | } |
| | | |
| | | foreach ($MESSAGE->parts as $part) { |
| | | // skip no-content and attachment parts (#1488557) |
| | | if ($part->type != 'content' || !$part->size || $MESSAGE->is_attachment($part)) { |
| | | continue; |
| | | } |
| | | |
| | | // skip all content parts inside the message/rfc822 part in DRAFT/EDIT mode |
| | | foreach ($messages as $mimeid) { |
| | | if (strpos($part->mime_id, $mimeid . '.') === 0) { |
| | | continue 2; |
| | | } |
| | | } |
| | | |
| | | if ($part_body = rcmail_compose_part_body($part, $isHtml)) { |
| | |
| | | $loaded_attachments[$attachment['name'] . $attachment['mimetype']] = $attachment; |
| | | } |
| | | |
| | | $cid_map = $messages = array(); |
| | | $cid_map = array(); |
| | | $messages = array(); |
| | | |
| | | foreach ((array)$message->mime_parts as $pid => $part) |
| | | { |
| | | if ($part->disposition == 'attachment' || ($part->disposition == 'inline' && $bodyIsHtml) || $part->filename) { |
| | |
| | | if ($part->ctype_primary == 'message' && $compose_mode == RCUBE_COMPOSE_REPLY) { |
| | | continue; |
| | | } |
| | | // skip inline images when forwarding |
| | | if ($part->content_id && $part->disposition == 'inline' && $compose_mode == RCUBE_COMPOSE_FORWARD) { |
| | | // skip inline images when forwarding in text mode |
| | | if ($part->content_id && $part->disposition == 'inline' && !$bodyIsHtml && $compose_mode == RCUBE_COMPOSE_FORWARD) { |
| | | continue; |
| | | } |
| | | |
| | | $skip = false; |
| | | // skip message/rfc822 attachments on forwards (#1489214) |
| | | // Thunderbird when forwarding in inline mode displays such attachments |
| | | // and skips any attachments from inside of such part, this however |
| | | // skipped e.g. images used in HTML body or other attachments. So, |
| | | // better to skip .eml attachments but not their content (included files). |
| | | if ($part->mimetype == 'message/rfc822') { |
| | | if ($compose_mode == RCUBE_COMPOSE_FORWARD) { |
| | | continue; |
| | | } |
| | | $messages[] = $part->mime_id; |
| | | } else if ($messages) { |
| | | } |
| | | else if ($compose_mode != RCUBE_COMPOSE_FORWARD) { |
| | | // skip attachments included in message/rfc822 attachment (#1486487) |
| | | foreach ($messages as $mimeid) |
| | | if (strpos($part->mime_id, $mimeid.'.') === 0) { |
| | | $skip = true; |
| | | break; |
| | | continue 2; |
| | | } |
| | | } |
| | | |
| | | if (!$skip && (($attachment = $loaded_attachments[rcmail_attachment_name($part) . $part->mimetype]) |
| | | || ($attachment = rcmail_save_attachment($message, $pid)))) { |
| | | if (($attachment = $loaded_attachments[rcmail_attachment_name($part) . $part->mimetype]) |
| | | || ($attachment = rcmail_save_attachment($message, $pid))) { |
| | | $COMPOSE['attachments'][$attachment['id']] = $attachment; |
| | | if ($bodyIsHtml && ($part->content_id || $part->content_location)) { |
| | | $url = sprintf('%s&_id=%s&_action=display-attachment&_file=rcmfile%s', |