}
$body = getforwardHeader($orig_header) . $body;
sqUnWordWrap($body);
- getAttachments($message, $session, $passed_id, $entities, $imapConnection);
+ getAttachments($message, $session, $passed_id, $entities, $imapConnection);
+ break;
+ case ('forward_as_attachment'):
+ getMessage_RFC822_Attachment($message, $session, $passed_id, $passed_ent_id, $imapConnection);
+ $body = '';
break;
case ('reply_all'):
$send_to_cc = replyAllString($orig_header);
}
} else {
$filename = decodeHeader($message->header->getParameter('filename'));
- if ($filename == "") {
- $filename = "untitled-".$message->entity_id;
+ if ($filename == '') {
+ $name = decodeHeader($message->header->getParameter('name'));
+ if ($name == '') {
+ $filename = "untitled-".$message->entity_id;
+ } else {
+ $filename = $name;
+ }
}
}
$localfilename = GenerateRandomString(32, '', 7);
$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,
+ $passed_ent_id='', $imapConnection) {
+ global $attachments, $attachment_dir, $username, $data_dir, $uid_support;
+ $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
+ 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);
+ $body = implode('', $body_a);
+ $body .= "\r\n";
+
+ $localfilename = GenerateRandomString(32, 'FILE', 7);
+ $full_localfilename = "$hashed_attachment_dir/$localfilename";
+
+ $fp = fopen( $full_localfilename, 'w');
+ fwrite ($fp, $body);
+ fclose($fp);
+ $newAttachment = array();
+ $newAttachment['localfilename'] = $localfilename;
+ $newAttachment['type'] = "message/rfc822";
+ $newAttachment['remotefilename'] = $subject.'.eml';
+ $newAttachment['session'] = $session;
+ $attachments[] = $newAttachment;
+ }
+ setPref($data_dir, $username, 'attachments', serialize($attachments));
return;
}
if (isset($session)) {
echo '<input type="hidden" name="session" value="' . $session . "\">\n";
}
-
+
+ if (isset($passed_id)) {
+ echo '<input type="hidden" name="passed_id" value="' . $passed_id . "\">\n";
+ }
if ($saved_draft == 'yes') {
echo '<BR><CENTER><B>'. _("Draft Saved").'</CENTER></B>';