From bd9906cdfc3bac1efd7ba4e84234b604cf11e869 Mon Sep 17 00:00:00 2001 From: fallas Date: Sun, 28 Oct 2001 11:30:00 +0000 Subject: [PATCH] Modified actions for sending an email, directing it to drafts folder instead. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@1635 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- src/draft_actions.php | 163 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 src/draft_actions.php diff --git a/src/draft_actions.php b/src/draft_actions.php new file mode 100644 index 00000000..51beaddb --- /dev/null +++ b/src/draft_actions.php @@ -0,0 +1,163 @@ +"; + else + $from = '"' . encodeHeader($from) . "\" <$from_addr>"; + + /* This creates an RFC 822 date */ + $date = date("D, j M Y H:i:s ", mktime()) . timezone(); + + /* Create a message-id */ + $message_id = '<' . $REMOTE_PORT . '.' . $REMOTE_ADDR . '.'; + $message_id .= time() . '.squirrel@' . $SERVER_NAME .'>'; + + /* Make an RFC822 Received: line */ + if (isset($REMOTE_HOST)) + $received_from = "$REMOTE_HOST ([$REMOTE_ADDR])"; + else + $received_from = $REMOTE_ADDR; + + if (isset($HTTP_VIA) || isset ($HTTP_X_FORWARDED_FOR)) { + if ($HTTP_X_FORWARDED_FOR == '') + $HTTP_X_FORWARDED_FOR = 'unknown'; + $received_from .= " (proxying for $HTTP_X_FORWARDED_FOR)"; + } + + $header = "Received: from $received_from\r\n"; + $header .= " (SquirrelMail authenticated user $username)\r\n"; + $header .= " by $SERVER_NAME with HTTP;\r\n"; + $header .= " $date\r\n"; + + /* Insert the rest of the header fields */ + $header .= "Message-ID: $message_id\r\n"; + $header .= "Date: $date\r\n"; + $header .= "Subject: $subject\r\n"; + $header .= "From: $from\r\n"; + $header .= "To: $to_list\r\n"; // Who it's TO + + /* Insert headers from the $more_headers array */ + if(is_array($more_headers)) { + reset($more_headers); + while(list($h_name, $h_val) = each($more_headers)) { + $header .= sprintf("%s: %s\r\n", $h_name, $h_val); + } + } + + if ($cc_list) { + $header .= "Cc: $cc_list\r\n"; // Who the CCs are + } + + if ($bcc_list) { + $header .= "Bcc: $bcc_list\r\n"; // Who the BCCs are + } + + if ($reply_to != '') + $header .= "Reply-To: $reply_to\r\n"; + + if ($useSendmail) { + if ($bcc_list) { + // BCCs is removed from header by sendmail + $header .= "Bcc: $bcc_list\r\n"; + } + } + + $header .= "X-Mailer: SquirrelMail (version $version)\r\n"; // Identify SquirrelMail + + + // Do the MIME-stuff + $header .= "MIME-Version: 1.0\r\n"; + + if (isMultipart()) { + $header .= 'Content-Type: multipart/mixed; boundary="'; + $header .= mimeBoundary(); + $header .= "\"\r\n"; + } else { + if ($default_charset != '') + $header .= "Content-Type: text/plain; charset=$default_charset\r\n"; + else + $header .= "Content-Type: text/plain;\r\n"; + $header .= "Content-Transfer-Encoding: 8bit\r\n"; + } + $header .= "\r\n"; // One blank line to separate header and body + + $headerlength = strlen($header); + } + + // Write the header + fputs ($fp, $header); + + return $headerlength; + } + + function saveMessagetoDraft($t, $c, $b, $subject, $body, $reply_id) { + global $useSendmail, $msg_id, $is_reply, $mailbox, $onetimepad; + global $data_dir, $username, $domain, $key, $version, $sent_folder, $imapServerAddress, $imapPort; + global $draft_folder; + $more_headers = Array(); + + $imap_stream = sqimap_login($username, $key, $imapServerAddress, $imapPort, 1); + + $body = ereg_replace("\n\\.", "\n..", $body); + $body = ereg_replace("^\\.", "..", $body); + + $body = ereg_replace("\n", "\r\n", $body); + + $fp = fopen("/dev/null", a); + $headerlength = write822HeaderForDraft ($fp, $t, $c, $b, $subject, $more_headers); + $bodylength = writeBody ($fp, $body); + fclose ($fp); + + $length = ($headerlength + $bodylength); + + if (sqimap_mailbox_exists ($imap_stream, $draft_folder)) { + sqimap_append ($imap_stream, $draft_folder, $length); + write822HeaderForDraft ($imap_stream, $t, $c, $b, $subject, $more_headers); + writeBody ($imap_stream, $body); + sqimap_append_done ($imap_stream); + } + sqimap_logout($imap_stream); + if ($length) + ClearAttachments(); + return $length; +} +?> + -- 2.25.1