From 21f3c131eb4c0c70d76ceb3f52dd74f89fcf32e5 Mon Sep 17 00:00:00 2001 From: philippe_mingo Date: Mon, 20 May 2002 11:36:52 +0000 Subject: [PATCH] This is a fix for the eml forward module git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@2847 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- functions/smtp.php | 14 ++++--- src/compose.php | 12 +++--- src/move_messages.php | 96 +++++++++++++++++++++---------------------- 3 files changed, 63 insertions(+), 59 deletions(-) diff --git a/functions/smtp.php b/functions/smtp.php index 903ec015..d10f6854 100644 --- a/functions/smtp.php +++ b/functions/smtp.php @@ -147,8 +147,10 @@ function attachFiles ($fp, $session, $rn="\r\n") { $file = fopen ($filename, 'rb'); if (substr($filetype, 0, 5) == 'text/' || substr($filetype, 0, 8) == 'message/' ) { - $header .= "$rn"; - if ($fp) fputs ($fp, $header); + $header .= $rn; + if ($fp) { + fputs ($fp, $header); + } $length += strlen($header); while ($tmp = fgets($file, 4096)) { $tmp = str_replace("\r\n", "\n", $tmp); @@ -160,10 +162,12 @@ function attachFiles ($fp, $session, $rn="\r\n") { * Check if the last line has newline ($rn) in it * and append if it doesn't. */ - if (feof($fp) && !strstr($tmp, "$rn")){ - $tmp .= "$rn"; + if ($fp && feof($fp) && !strstr($tmp, "$rn")){ + $tmp .= $rn; + } + if ($fp) { + fputs($fp, $tmp); } - if ($fp) fputs($fp, $tmp); $length += strlen($tmp); } } else { diff --git a/src/compose.php b/src/compose.php index 766959f4..90d6ff38 100644 --- a/src/compose.php +++ b/src/compose.php @@ -760,12 +760,12 @@ function showInputForm ($session) { ' ' . ''; foreach ($attachments as $key => $info) { - if ($info['session'] == $session) { - $attached_file = "$hashed_attachment_dir/$info[localfilename]"; - echo '\n" . - $info['remotefilename'] . ' - ' . $info['type'] . ' (' . - show_readable_size(filesize($attached_file)) . ")
\n"; - } + if ($info['session'] == $session) { + $attached_file = "$hashed_attachment_dir/$info[localfilename]"; + echo '\n" . + $info['remotefilename'] . ' - ' . $info['type'] . ' (' . + show_readable_size( filesize( $attached_file ) ) . ")
\n"; + } } echo '"); - $subject = htmlentities($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'] = $composesession; - $attachments[] = $newAttachment; - flush(); + $id = $msg[$i]; + $body_a = sqimap_run_command($imapConnection, "FETCH $id RFC822",true, $response, $readmessage); + if ($response = 'OK') { + // get subject so we can set the remotefilename + $read = sqimap_run_command ($imapConnection, "FETCH $id BODY.PEEK[HEADER.FIELDS (Subject)]", true, $response, $readmessage); + $subject = substr($read[1], strpos($read[1], ' ')); + $subject = trim($subject); + + if (isset($subject) && $subject != '') { + $subject = htmlentities($subject); + } else { + $subject = _(""); + $subject = htmlentities($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'] = $composesession; + $attachments[] = $newAttachment; + flush(); } - $j++; - } - $i++; + $j++; + } + $i++; } return $composesession; -- 2.25.1