* $Id$
*/
-require_once('../src/validate.php');
-require_once('../functions/imap.php');
-require_once('../functions/date.php');
-require_once('../functions/mime.php');
-//require_once('../functions/smtp.php');
-require_once('../functions/plugin.php');
-require_once('../functions/display_messages.php');
-require_once('../class/deliver/Deliver.class.php');
+/* Path for SquirrelMail required files. */
+define('SM_PATH','../');
+
+/* SquirrelMail required files. */
+require_once(SM_PATH . 'include/validate.php');
+require_once(SM_PATH . 'functions/imap.php');
+require_once(SM_PATH . 'functions/date.php');
+require_once(SM_PATH . 'functions/mime.php');
+//require_once(SM_PATH . 'functions/smtp.php');
+require_once(SM_PATH . 'functions/plugin.php');
+require_once(SM_PATH . 'functions/display_messages.php');
+require_once(SM_PATH . 'class/deliver/Deliver.class.php');
+
+/* --------------------- Get globals ------------------------------------- */
+$username = $_SESSION['username'];
+$onetimepad = $_SESSION['onetimepad'];
+$base_uri = $_SESSION['base_uri'];
+$delimiter = $_SESSION['delimiter'];
+
+if (isset($_POST['return'])) {
+ $html_addr_search_done = 'Use Addresses';
+}
+if ( isset($_SESSION['composesession']) ) {
+ $composesession = $_SESSION['composesession'];
+}
+sqextractGlobalVar('session');
+sqextractGlobalVar('mailbox');
+sqextractGlobalVar('identity');
+sqextractGlobalVar('send_to');
+sqextractGlobalVar('send_to_cc');
+sqextractGlobalVar('send_to_bcc');
+sqextractGlobalVar('subject');
+sqextractGlobalVar('body');
+sqextractGlobalVar('mailprio');
+sqextractGlobalVar('request_mdn');
+sqextractGlobalVar('request_dr');
+sqextractGlobalVar('html_addr_search');
+sqextractGlobalVar('mail_sent');
+sqextractGlobalVar('passed_id');
+
+if ( isset($_POST['sigappend']) ) {
+ $sigappend = $_POST['sigappend'];
+}
+/* From addressbook search */
+if ( isset($_POST['from_htmladdr_search']) ) {
+ $from_htmladdr_search = $_POST['from_htmladdr_search'];
+}
+if ( isset($_POST['addr_search_done']) ) {
+ $html_addr_search_done = $_POST['addr_search_done'];
+}
+if ( isset($_POST['send_to_search']) ) {
+ $send_to_search = &$_POST['send_to_search'];
+}
+
+/* Attachments */
+sqextractGlobalVar('attach');
+if ( isset($_POST['do_delete']) ) {
+ $do_delete = $_POST['do_delete'];
+}
+if ( isset($_POST['delete']) ) {
+ $delete = &$_POST['delete'];
+}
+if ( isset($_POST['attachments']) ) {
+ $attachments = &$_POST['attachments'];
+}
+elseif ( isset($_SESSION['attachments'])) {
+ $attachments = &$_SESSION['attachments'];
+}
+
+/* Forward message as attachment */
+if ( isset($_GET['attachedmessages']) ) {
+ $attachedmessages = $_GET['attachedmessages'];
+}
+
+/* Drafts */
+sqextractGlobalVar('draft');
+sqextractGlobalVar('draft_id');
+sqextractGlobalVar('ent_num');
+sqextractGlobalVar('saved_draft');
+sqextractGlobalVar('delete_draft');
+
+$key = $_COOKIE['key'];
/* --------------------- Specific Functions ------------------------------ */
}
/* ----------------------------------------------------------------------- */
+/* OLD: should be adapted to composeMessage */
+
/*
* If the session is expired during a post this restores the compose session
* vars.
*/
//$session_expired = false;
if (session_is_registered('session_expired_post')) {
- global $session_expired_post, $session_expired;
- /*
- * extra check for username so we don't display previous post data from
- * another user during this session.
- */
- if ($session_expired_post['username'] != $username) {
- session_unregister('session_expired_post');
- session_unregister('session_expired');
- } else {
- foreach ($session_expired_post as $postvar => $val) {
- if (isset($val)) {
- $$postvar = $val;
- } else {
- $$postvar = '';
- }
- }
- if (isset($send)) {
- unset($send);
- }
- $session_expired = true;
- }
- session_unregister('session_expired_post');
- session_unregister('session_expired');
- if (!isset($mailbox)) {
- $mailbox = '';
- }
- if ($compose_new_win == '1') {
- compose_Header($color, $mailbox);
- } else {
- displayPageHeader($color, $mailbox);
- }
- showInputForm($session, false);
- exit();
-}
-
-if (!isset($attachments)) {
- $attachments = array();
- sqsession_register(array(), 'attachments');
+ global $session_expired_post, $session_expired;
+ /*
+ * extra check for username so we don't display previous post data from
+ * another user during this session.
+ */
+ if ($session_expired_post['username'] != $username) {
+ sqsession_unregister('session_expired_post');
+ sqsession_unregister('session_expired');
+ } else {
+ foreach ($session_expired_post as $postvar => $val) {
+ if (isset($val)) {
+ $$postvar = $val;
+ } else {
+ $$postvar = '';
+ }
+ }
+ if (isset($send)) {
+ unset($send);
+ }
+ $session_expired = true;
+ }
+ sqsession_unregister('session_expired_post');
+ sqsession_unregister('session_expired');
+ if (!isset($mailbox)) {
+ $mailbox = '';
+ }
+ if ($compose_new_win == '1') {
+ compose_Header($color, $mailbox);
+ } else {
+ displayPageHeader($color, $mailbox);
+ }
+ showInputForm($session, false);
+ exit();
}
if (!isset($composesession)) {
}
if (!isset($session) || (isset($newmessage) && $newmessage)) {
+ sqsession_unregister('composesession');
$session = "$composesession" +1;
$composesession = $session;
sqsession_register($composesession,'composesession');
if (!isset($compose_messages)) {
$compose_messages = array();
}
-if (!array_key_exists($session, $compose_messages)) {
- $composeMessage = new message();
+if (!isset($compose_messages[$session]) || ($compose_messages[$session] == NULL)) {
+/* if (!array_key_exists($session, $compose_messages)) { /* We can only do this in PHP >= 4.1 */
+ $composeMessage = new Message();
$rfc822_header = new Rfc822Header();
$composeMessage->rfc822_header = $rfc822_header;
$composeMessage->reply_rfc822_header = '';
$compose_messages[$session] = $composeMessage;
+ sqsession_register($compose_messages,'compose_messages');
+} else {
+ $composeMessage=$compose_messages[$session];
}
-sqsession_register($compose_messages,'compose_messages');
if (!isset($mailbox) || $mailbox == '' || ($mailbox == 'None')) {
$mailbox = 'INBOX';
}
if (isset($send)) {
- if (isset($HTTP_POST_FILES['attachfile']) &&
- $HTTP_POST_FILES['attachfile']['tmp_name'] &&
- $HTTP_POST_FILES['attachfile']['tmp_name'] != 'none') {
+ if (isset($_FILES['attachfile']) &&
+ $_FILES['attachfile']['tmp_name'] &&
+ $_FILES['attachfile']['tmp_name'] != 'none') {
$AttachFailure = saveAttachedFiles($session);
}
if (checkInput(false) && !isset($AttachFailure)) {
}
showInputForm($session);
} elseif (isset($html_addr_search)) {
- if (isset($HTTP_POST_FILES['attachfile']) &&
- $HTTP_POST_FILES['attachfile']['tmp_name'] &&
- $HTTP_POST_FILES['attachfile']['tmp_name'] != 'none') {
- if (saveAttachedFiles($session)) {
+ if (isset($_FILES['attachfile']) &&
+ $_FILES['attachfile']['tmp_name'] &&
+ $_FILES['attachfile']['tmp_name'] != 'none') {
+ if(saveAttachedFiles($session)) {
plain_error_message(_("Could not move/copy file. File not attached"), $color);
}
}
switch ($action) {
case ('draft'):
$use_signature = FALSE;
- $send_to = $orig_header->getAddr_s('to');
- $send_to_cc = $orig_header->getAddr_s('cc');
- $send_to_bcc = $orig_header->getAddr_s('bcc');
+ $send_to = decodeHeader($orig_header->getAddr_s('to'));
+ $send_to_cc = decodeHeader($orig_header->getAddr_s('cc'));
+ $send_to_bcc = decodeHeader($orig_header->getAddr_s('bcc'));
$subject = decodeHeader($orig_header->subject);
$body_ary = explode("\n", $body);
$composeMessage = getAttachments($message, $composeMessage, $passed_id, $entities, $imapConnection);
break;
case ('edit_as_new'):
- $send_to = $orig_header->getAddr_s('to');
- $send_to_cc = $orig_header->getAddr_s('cc');
- $send_to_bcc = $orig_header->getAddr_s('bcc');
+ $send_to = decodeHeader($orig_header->getAddr_s('to'));
+ $send_to_cc = decodeHeader($orig_header->getAddr_s('cc'));
+ $send_to_bcc = decodeHeader($orig_header->getAddr_s('bcc'));
$subject = decodeHeader($orig_header->subject);
$mailprio = $orig_header->priority;
$orig_from = '';
case ('reply'):
$send_to = $orig_header->reply_to;
if (is_object($send_to)) {
- $send_to = $send_to->getAddr_s('reply_to');
+ $send_to = decodeHeader($send_to->getAddr_s('reply_to'));
} else {
- $send_to = $orig_header->getAddr_s('from');
+ $send_to = decodeHeader($orig_header->getAddr_s('from'));
}
$subject = decodeHeader($orig_header->subject);
$subject = str_replace('"', "'", $subject);
/* True if FAILURE */
function saveAttachedFiles($session) {
- global $HTTP_POST_FILES, $attachment_dir, $attachments, $username,
+ global $_FILES, $attachment_dir, $attachments, $username,
$data_dir, $compose_messages;
$hashed_attachment_dir = getHashedDir($username, $attachment_dir);
$full_localfilename = "$hashed_attachment_dir/$localfilename";
}
- if (!@rename($HTTP_POST_FILES['attachfile']['tmp_name'], $full_localfilename)) {
+ if (!@rename($_FILES['attachfile']['tmp_name'], $full_localfilename)) {
if (function_exists("move_uploaded_file")) {
- if (!@move_uploaded_file($HTTP_POST_FILES['attachfile']['tmp_name'], $full_localfilename)) {
+ if (!@move_uploaded_file($_FILES['attachfile']['tmp_name'],$full_localfilename)) {
return true;
}
} else {
- if (!@copy($HTTP_POST_FILES['attachfile']['tmp_name'], $full_localfilename)) {
+ if (!@copy($_FILES['attachfile']['tmp_name'], $full_localfilename)) {
return true;
}
}
}
$message = $compose_messages[$session];
- $type = strtolower($HTTP_POST_FILES['attachfile']['type']);
- $name = $HTTP_POST_FILES['attachfile']['name'];
+ $type = strtolower($_FILES['attachfile']['type']);
+ $name = $_FILES['attachfile']['name'];
$message->initAttachment($type, $name, $full_localfilename);
$compose_messages[$session] = $message;
}
}
$reply_to = '';
if (isset($identity) && $identity != 'default') {
- $from_mail = getPref($data_dir, $username,
- 'email_address' . $identity);
- $full_name = getPref($data_dir, $username,
- 'full_name' . $identity);
- $from_addr = '"'.$full_name.'" <'.$from_mail.'>';
- $reply_to = getPref($data_dir, $username,
- 'reply_to' . $identity);
+ $from_mail = getPref($data_dir, $username,'email_address' . $identity);
+ $full_name = getPref($data_dir, $username,'full_name' . $identity);
+ $reply_to = getPref($data_dir, $username,'reply_to' . $identity);
} else {
$from_mail = getPref($data_dir, $username, 'email_address');
$full_name = getPref($data_dir, $username, 'full_name');
- $from_addr = '"'.$full_name.'" <'.$from_mail.'>';
$reply_to = getPref($data_dir, $username,'reply_to');
}
- if (!$from_addr) {
- $from_addr = "$popuser@$domain";
- $from_mail = $from_addr;
+ if (!$from_mail) {
+ $from_mail = "$popuser@$domain";
+ $full_name = '';
+ }
+ $rfc822_header->from = $rfc822_header->parseAddress($from_mail,true);
+ if ($full_name) {
+ $from = $rfc822_header->from[0];
+ if (!$from->host) $from->host = $domain;
+ $from_addr = $full_name .' <'.$from->mailbox.'@'.$from->host.'>';
+ $rfc822_header->from = $rfc822_header->parseAddress($from_addr,true);
}
- $rfc822_header->from = $rfc822_header->parseAddress($from_addr,true);
if ($reply_to) {
$rfc822_header->reply_to = $rfc822_header->parseAddress($reply_to,true);
}
$composeMessage->rfc822_header = $rfc822_header;
if (!$useSendmail && !$draft) {
- require_once('../class/deliver/Deliver_SMTP.class.php');
+ require_once(SM_PATH . 'class/deliver/Deliver_SMTP.class.php');
$deliver = new Deliver_SMTP();
global $smtpServerAddress, $smtpPort, $use_authenticated_smtp, $pop_before_smtp;
if ($use_authenticated_smtp) {
$stream = $deliver->initStream($composeMessage,$domain,0,
$smtpServerAddress, $smtpPort, $authPop);
} elseif (!$draft) {
- require_once('../class/deliver/Deliver_SentMail.class.php');
+ require_once(SM_PATH . 'class/deliver/Deliver_SendMail.class.php');
global $sendmail_path;
$deliver = new Deliver_SendMail();
$stream = $deliver->initStream($composeMessage,$sendmail_path);
} elseif ($draft) {
global $draft_folder;
- require_once('../class/deliver/Deliver_IMAP.class.php');
- $imap_deliver = new Deliver_IMAP();
+ require_once(SM_PATH . 'class/deliver/Deliver_IMAP.class.php');
$imap_stream = sqimap_login($username, $key, $imapServerAddress,
$imapPort, 0);
if (sqimap_mailbox_exists ($imap_stream, $draft_folder)) {
- require_once('../class/deliver/Deliver_IMAP.class.php');
+ require_once(SM_PATH . 'class/deliver/Deliver_IMAP.class.php');
$imap_deliver = new Deliver_IMAP();
$length = $imap_deliver->mail($composeMessage);
sqimap_append ($imap_stream, $draft_folder, $length);
$imapPort, 0);
if (sqimap_mailbox_exists ($imap_stream, $sent_folder)) {
sqimap_append ($imap_stream, $sent_folder, $length);
- require_once('../class/deliver/Deliver_IMAP.class.php');
+ require_once(SM_PATH . 'class/deliver/Deliver_IMAP.class.php');
$imap_deliver = new Deliver_IMAP();
$imap_deliver->mail($composeMessage, $imap_stream);
sqimap_append_done ($imap_stream);