| | |
| | | |
| | | 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->mime_parts as $part) { |
| | | if ($part->mimetype == 'message/rfc822') { |
| | | $messages[] = $part->mime_id; |
| | | } |
| | | } |
| | | |
| | |
| | | continue; |
| | | } |
| | | |
| | | // skip all content parts inside the message/rfc822 part in DRAFT/EDIT mode |
| | | // skip all content parts inside the message/rfc822 part |
| | | foreach ($messages as $mimeid) { |
| | | if (strpos($part->mime_id, $mimeid . '.') === 0) { |
| | | continue 2; |
| | |
| | | } |
| | | |
| | | foreach ((array)$message->mime_parts as $pid => $part) { |
| | | if ($part->mimetype == 'message/rfc822') { |
| | | $messages[] = $part->mime_id; |
| | | } |
| | | |
| | | if ($part->disposition == 'attachment' || ($part->disposition == 'inline' && $bodyIsHtml) || $part->filename) { |
| | | // skip parts that aren't valid attachments |
| | | if ($part->ctype_primary == 'multipart' || $part->mimetype == 'application/ms-tnef') { |
| | |
| | | continue; |
| | | } |
| | | |
| | | // 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 ($COMPOSE['mode'] != RCUBE_COMPOSE_FORWARD) { |
| | | // skip attachments included in message/rfc822 attachment (#1486487) |
| | | foreach ($messages as $mimeid) { |
| | | if (strpos($part->mime_id, $mimeid . '.') === 0) { |
| | | continue 2; |
| | | } |
| | | // skip attachments included in message/rfc822 attachment (#1486487, #1490607) |
| | | foreach ($messages as $mimeid) { |
| | | if (strpos($part->mime_id, $mimeid . '.') === 0) { |
| | | continue 2; |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | global $RCMAIL, $COMPOSE; |
| | | |
| | | $cid_map = array(); |
| | | $cid_map = array(); |
| | | $messages = array(); |
| | | |
| | | if ($message->pgp_mime) { |
| | | return $cid_map; |
| | | } |
| | | |
| | | foreach ((array)$message->mime_parts as $pid => $part) { |
| | | if ($part->mimetype == 'message/rfc822') { |
| | | $messages[] = $part->mime_id; |
| | | } |
| | | |
| | | if (($part->content_id || $part->content_location) && $part->filename) { |
| | | // skip attachments included in message/rfc822 attachment (#1486487, #1490607) |
| | | foreach ($messages as $mimeid) { |
| | | if (strpos($part->mime_id, $mimeid . '.') === 0) { |
| | | continue 2; |
| | | } |
| | | } |
| | | |
| | | if ($attachment = rcmail_save_attachment($message, $pid, $COMPOSE['id'])) { |
| | | $url = sprintf('%s&_id=%s&_action=display-attachment&_file=rcmfile%s', |
| | | $RCMAIL->comm_path, $COMPOSE['id'], $attachment['id']); |
| | |
| | | $form_start .= $hiddenfields->show(); |
| | | } |
| | | |
| | | $form_end = ($MESSAGE_FORM && !strlen($attrib['form'])) ? '</form>' : ''; |
| | | $form_name = !empty($attrib['form']) ? $attrib['form'] : 'form'; |
| | | $form_end = ($MESSAGE_FORM && !strlen($attrib['form'])) ? '</form>' : ''; |
| | | $form_name = $attrib['form'] ?: 'form'; |
| | | |
| | | if (!$MESSAGE_FORM) |
| | | $RCMAIL->output->add_gui_object('messageform', $form_name); |
| | |
| | | rcube_utils::html_identifier($id,true), |
| | | $class_name, |
| | | $source['id'], |
| | | $js_id, (!empty($source['name']) ? $source['name'] : $id)); |
| | | $js_id, ($source['name'] ?: $id)); |
| | | } |
| | | |
| | | $OUTPUT->add_gui_object('addressbookslist', $attrib['id']); |