X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fcompose.php;h=17d3be5612c295f4524005e34feca5c090f55f6d;hb=a564b9e3f94dcd52acd4133c84de9cac3da3cab6;hp=7c051643cf7fc0af81efb6511d538edb2645efff;hpb=5777c73d3dd93687e4b970b7d5662d77b0f342b9;p=squirrelmail.git diff --git a/src/compose.php b/src/compose.php index 7c051643..17d3be56 100644 --- a/src/compose.php +++ b/src/compose.php @@ -10,7 +10,7 @@ * - Send mail * - Save As Draft * - * @copyright 1999-2012 The SquirrelMail Project Team + * @copyright 1999-2017 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package squirrelmail @@ -41,6 +41,7 @@ require_once(SM_PATH . 'class/deliver/Deliver.class.php'); require_once(SM_PATH . 'functions/addressbook.php'); require_once(SM_PATH . 'functions/forms.php'); require_once(SM_PATH . 'functions/identity.php'); +global $imap_stream_options; // in case not defined in config /* --------------------- Get globals ------------------------------------- */ @@ -72,6 +73,7 @@ if (isset($send) && $send) { } sqgetGlobalVar('session',$session, $SQ_GLOBAL); sqgetGlobalVar('mailbox',$mailbox, $SQ_GLOBAL); +sqgetGlobalVar('identity',$orig_identity, $SQ_GLOBAL); if(!sqgetGlobalVar('identity',$identity, $SQ_GLOBAL)) { $identity=0; } @@ -415,7 +417,7 @@ if ($draft) { // validate security token // - sm_validate_security_token($submitted_token, 3600, TRUE); + sm_validate_security_token($submitted_token, -1, TRUE); /* * Set $default_charset to correspond with the user's selection @@ -429,7 +431,7 @@ if ($draft) { $draft_message = _("Draft Email Saved"); /* If this is a resumed draft, then delete the original */ if(isset($delete_draft)) { - $imap_stream = sqimap_login($username, false, $imapServerAddress, $imapPort, false); + $imap_stream = sqimap_login($username, false, $imapServerAddress, $imapPort, false, $imap_stream_options); sqimap_mailbox_select($imap_stream, $draft_folder); // force bypass_trash=true because message should be saved when deliverMessage() returns true. // in current implementation of sqimap_msgs_list_flag() single message id can @@ -474,7 +476,7 @@ if ($send) { // validate security token // - sm_validate_security_token($submitted_token, 3600, TRUE); + sm_validate_security_token($submitted_token, -1, TRUE); if (isset($_FILES['attachfile']) && $_FILES['attachfile']['tmp_name'] && @@ -542,7 +544,7 @@ if ($send) { /* if it is resumed draft, delete draft message */ if ( isset($delete_draft)) { - $imap_stream = sqimap_login($username, false, $imapServerAddress, $imapPort, false); + $imap_stream = sqimap_login($username, false, $imapServerAddress, $imapPort, false, $imap_stream_options); sqimap_mailbox_select($imap_stream, $draft_folder); // bypass_trash=true because message should be saved when deliverMessage() returns true. // in current implementation of sqimap_msgs_list_flag() single message id can @@ -601,7 +603,7 @@ if ($send) { // validate security token // - sm_validate_security_token($submitted_token, 3600, TRUE); + sm_validate_security_token($submitted_token, -1, TRUE); if ($compose_new_win == '1') { compose_Header($color, $mailbox); @@ -650,7 +652,7 @@ if ($send) { // validate security token // - sm_validate_security_token($submitted_token, 3600, TRUE); + sm_validate_security_token($submitted_token, -1, TRUE); if ($compose_new_win == '1') { compose_Header($color, $mailbox); @@ -666,7 +668,7 @@ elseif (isset($sigappend)) { // validate security token // - sm_validate_security_token($submitted_token, 3600, TRUE); + sm_validate_security_token($submitted_token, -1, TRUE); $signature = $idents[$identity]['signature']; @@ -681,7 +683,7 @@ elseif (isset($sigappend)) { // validate security token // - sm_validate_security_token($submitted_token, 3600, TRUE); + sm_validate_security_token($submitted_token, -1, TRUE); if ($compose_new_win == '1') { compose_Header($color, $mailbox); @@ -752,6 +754,12 @@ elseif (isset($sigappend)) { if (isset($subject)) { $values['subject'] = $subject; } + if (isset($mailprio)) { + $values['mailprio'] = $mailprio; + } + if (isset($orig_identity)) { + $values['identity'] = $orig_identity; + } showInputForm($session, $values); } @@ -773,7 +781,7 @@ function getforwardSubject($subject) function newMail ($mailbox='', $passed_id='', $passed_ent_id='', $action='', $session='') { global $editor_size, $default_use_priority, $body, $idents, $use_signature, $data_dir, $username, - $key, $imapServerAddress, $imapPort, + $key, $imapServerAddress, $imapPort, $imap_stream_options, $composeMessage, $body_quote, $request_mdn, $request_dr, $mdn_user_support, $languages, $squirrelmail_language, $default_charset, $do_not_reply_to_self; @@ -790,7 +798,7 @@ function newMail ($mailbox='', $passed_id='', $passed_ent_id='', $action='', $se if ($passed_id) { $imapConnection = sqimap_login($username, false, $imapServerAddress, - $imapPort, 0); + $imapPort, 0, $imap_stream_options); sqimap_mailbox_select($imapConnection, $mailbox); $message = sqimap_get_message($imapConnection, $passed_id, $mailbox); @@ -1000,10 +1008,12 @@ function newMail ($mailbox='', $passed_id='', $passed_ent_id='', $action='', $se // if this is a reply-all, the original recipient // is already in the CC field, so we can just blank // the recipient (TO field) (as long as the CC field - // isn't empty that is) and we're done + // isn't empty that is)... but then move the CC into + // the TO, so TO isn't empty // if ($action == 'reply_all' && !empty($send_to_cc)) { - $send_to = ''; + $orig_to = $send_to_cc; + $send_to_cc = ''; break; } @@ -1678,7 +1688,7 @@ function deliverMessage(&$composeMessage, $draft=false) { $username, $identity, $idents, $data_dir, $request_mdn, $request_dr, $default_charset, $useSendmail, $domain, $action, $default_move_to_sent, $move_to_sent, - $imapServerAddress, $imapPort, $sent_folder, $key; + $imapServerAddress, $imapPort, $imap_stream_options, $sent_folder, $key; $rfc822_header = $composeMessage->rfc822_header; @@ -1771,17 +1781,20 @@ function deliverMessage(&$composeMessage, $draft=false) { it over to deliver; plugin authors note that $composeMessage is sent and modified by reference since 1.5.2 */ do_hook('compose_send', $composeMessage); +//TODO: need to migrate to the following, but it neessitates changes in existing plugins, since the args are now an array + //$temp = array(&$composeMessage, &$draft); + //do_hook('compose_send', $temp); if (!$useSendmail && !$draft) { require_once(SM_PATH . 'class/deliver/Deliver_SMTP.class.php'); $deliver = new Deliver_SMTP(); - global $smtpServerAddress, $smtpPort, $pop_before_smtp, $pop_before_smtp_host; + global $smtpServerAddress, $smtpPort, $smtp_stream_options, $pop_before_smtp, $pop_before_smtp_host; $authPop = (isset($pop_before_smtp) && $pop_before_smtp) ? true : false; if (empty($pop_before_smtp_host)) $pop_before_smtp_host = $smtpServerAddress; get_smtp_user($user, $pass); $stream = $deliver->initStream($composeMessage,$domain,0, - $smtpServerAddress, $smtpPort, $user, $pass, $authPop, $pop_before_smtp_host); + $smtpServerAddress, $smtpPort, $user, $pass, $authPop, $pop_before_smtp_host, $smtp_stream_options); } elseif (!$draft) { require_once(SM_PATH . 'class/deliver/Deliver_SendMail.class.php'); global $sendmail_path, $sendmail_args; @@ -1798,7 +1811,7 @@ function deliverMessage(&$composeMessage, $draft=false) { } elseif ($draft) { global $draft_folder; $imap_stream = sqimap_login($username, false, $imapServerAddress, - $imapPort, 0); + $imapPort, 0, $imap_stream_options); if (sqimap_mailbox_exists ($imap_stream, $draft_folder)) { require_once(SM_PATH . 'class/deliver/Deliver_IMAP.class.php'); $imap_deliver = new Deliver_IMAP(); @@ -1834,7 +1847,7 @@ function deliverMessage(&$composeMessage, $draft=false) { plain_error_message($msg); } else { unset ($deliver); - $imap_stream = sqimap_login($username, false, $imapServerAddress, $imapPort, 0); + $imap_stream = sqimap_login($username, false, $imapServerAddress, $imapPort, 0, $imap_stream_options); // mark as replied or forwarded if applicable