alecpl
2010-05-20 021ef41737e2ae328c8b5e428158d7aaddb1c117
- Fix duplicated attachments when forwarding a message (#1486487)


2 files modified
17 ■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/steps/mail/compose.inc 16 ●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG RoundCube Webmail
===========================
- Fix duplicated attachments when forwarding a message (#1486487)
- Fix message/rfc822 attachments containing only attachments are not parsed properly (#1486743)
- Fix %00 character in winmail.dat attachments names (#1486738)
- Fix handling errors of folder deletion (#1486705)
program/steps/mail/compose.inc
@@ -738,13 +738,25 @@
{
  global $OUTPUT;
  $cid_map = array();
  $cid_map = $messages = array();
  foreach ((array)$message->mime_parts as $pid => $part)
  {
    if (($part->ctype_primary != 'message' || !$bodyIsHtml) && $part->ctype_primary != 'multipart' && 
        ($part->disposition == 'attachment' || ($part->disposition == 'inline' && $bodyIsHtml) || $part->filename))
    {
      if ($attachment = rcmail_save_attachment($message, $pid)) {
      $skip = false;
      if ($part->mimetype == 'message/rfc822') {
        $messages[] = $part->mime_id;
      } else if ($messages) {
        // skip attachments included in message/rfc822 attachment (#1486487)
        foreach ($messages as $mimeid)
          if (strpos($part->mime_id, $mimeid.'.') === 0) {
            $skip = true;
            break;
          }
      }
      if (!$skip && ($attachment = rcmail_save_attachment($message, $pid))) {
        $_SESSION['compose']['attachments'][$attachment['id']] = $attachment;
        if ($bodyIsHtml && $part->content_id) {
          $cid_map['cid:'.$part->content_id] = $OUTPUT->app->comm_path.'&_action=display-attachment&_file=rcmfile'.$attachment['id'];