fix for getting filenames for attachments
[squirrelmail.git] / src / compose.php
index b14871015dcae1ac9ace0aeede2cede6e2932719..acda70a9cbcb2af4c3e1b91a58d34b27a4bed9f7 100644 (file)
@@ -552,7 +552,7 @@ function newMail ($mailbox='', $passed_id='', $passed_ent_id='', $action='', $se
            getAttachments($message, $session, $passed_id, $entities, $imapConnection);
           break;
        case ('forward_as_attachment'):
-           getMessage_RFC822_Attachment($message, $session, $passed_id, $imapConnection);
+           getMessage_RFC822_Attachment($message, $session, $passed_id, $passed_ent_id, $imapConnection);
           $body = '';
           break;
         case ('reply_all'):
@@ -648,22 +648,31 @@ function getAttachments($message, $session, $passed_id, $entities, $imapConnecti
                 $passed_id, $message->entity_id),
                 $message->header->encoding));
             fclose ($fp);
-
             $attachments[] = $newAttachment;
-            setPref($data_dir, $username, 'attachments', $attachments);
         }
     } else {
         for ($i = 0; $i < count($message->entities); $i++) {
             getAttachments($message->entities[$i], $session, $passed_id, $entities, $imapConnection);
         }
     }
+    setPref($data_dir, $username, 'attachments', serialize($attachments));    
     return;
 }
 
-function getMessage_RFC822_Attachment($message, $session, $passed_id, $imapConnection) {
+function getMessage_RFC822_Attachment($message, $session, $passed_id, 
+                                      $passed_ent_id='', $imapConnection) {
     global $attachments, $attachment_dir, $username, $data_dir, $uid_support;
     $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
-    $body_a = sqimap_run_command($imapConnection, "FETCH $passed_id RFC822",true, $response, $readmessage, $uid_support);
+    if (!$passed_ent_id) {
+       $body_a = sqimap_run_command($imapConnection, 
+                 'FETCH '.$passed_id.' RFC822',
+                 true, $response, $readmessage, $uid_support);
+    } else {
+        $body_a = sqimap_run_command($imapConnection, 
+                 'FETCH '.$passed_id.' BODY['.$passed_ent_id.']',
+                 true, $response, $readmessage, $uid_support);
+       $message = $message->parent;
+    }
     if ($response = 'OK') {
        $subject = encodeHeader($message->rfc822_header->subject);
        array_shift($body_a);
@@ -683,6 +692,7 @@ function getMessage_RFC822_Attachment($message, $session, $passed_id, $imapConne
        $newAttachment['session'] = $session;
        $attachments[] = $newAttachment;
     }
+    setPref($data_dir, $username, 'attachments', serialize($attachments));
     return;
 }