X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fcompose.php;h=96b7444ffb1102c57193bdfc15bf188797d96f6e;hb=40e071367219a08de46bf1ed3993180030adc9c9;hp=2da86907a31a37c39825073da31a4c9af906bf4b;hpb=876fdb605dcb48b44b5c0a3a6f2f106c941e5c20;p=squirrelmail.git diff --git a/src/compose.php b/src/compose.php index 2da86907..96b7444f 100644 --- a/src/compose.php +++ b/src/compose.php @@ -45,31 +45,37 @@ sqgetGlobalVar('delayed_errors', $delayed_errors, SQ_SESSION); $oErrorHandler->setDelayedErrors(true); /** SESSION/POST/GET VARS */ -sqgetGlobalVar('session',$session); -sqgetGlobalVar('mailbox',$mailbox); -if(!sqgetGlobalVar('identity',$identity)) { +sqgetGlobalVar('send', $send, SQ_POST); +// Send can only be achieved by setting $_POST var. If Send = true then +// retrieve other form fields from $_POST +if (isset($send) && $send) { + $SQ_GLOBAL = SQ_POST; +} else { + $SQ_GLOBAL = SQ_FORM; +} +sqgetGlobalVar('session',$session, $SQ_GLOBAL); +sqgetGlobalVar('mailbox',$mailbox, $SQ_GLOBAL); +if(!sqgetGlobalVar('identity',$identity, $SQ_GLOBAL)) { $identity=0; } -sqgetGlobalVar('send_to',$send_to); -sqgetGlobalVar('send_to_cc',$send_to_cc); -sqgetGlobalVar('send_to_bcc',$send_to_bcc); -sqgetGlobalVar('subject',$subject); -sqgetGlobalVar('body',$body); -sqgetGlobalVar('mailprio',$mailprio); -sqgetGlobalVar('request_mdn',$request_mdn); -sqgetGlobalVar('request_dr',$request_dr); -sqgetGlobalVar('html_addr_search',$html_addr_search); -sqgetGlobalVar('mail_sent',$mail_sent); -sqgetGlobalVar('passed_id',$passed_id); -sqgetGlobalVar('passed_ent_id',$passed_ent_id); -sqgetGlobalVar('send',$send); - -sqgetGlobalVar('attach',$attach); - -sqgetGlobalVar('draft',$draft); -sqgetGlobalVar('draft_id',$draft_id); -sqgetGlobalVar('ent_num',$ent_num); -sqgetGlobalVar('saved_draft',$saved_draft); +sqgetGlobalVar('send_to',$send_to, $SQ_GLOBAL); +sqgetGlobalVar('send_to_cc',$send_to_cc, $SQ_GLOBAL); +sqgetGlobalVar('send_to_bcc',$send_to_bcc, $SQ_GLOBAL); +sqgetGlobalVar('subject',$subject, $SQ_GLOBAL); +sqgetGlobalVar('body',$body, $SQ_GLOBAL); +sqgetGlobalVar('mailprio',$mailprio, $SQ_GLOBAL); +sqgetGlobalVar('request_mdn',$request_mdn, $SQ_GLOBAL); +sqgetGlobalVar('request_dr',$request_dr, $SQ_GLOBAL); +sqgetGlobalVar('html_addr_search',$html_addr_search, $SQ_GLOBAL); +sqgetGlobalVar('mail_sent',$mail_sent, $SQ_GLOBAL); +sqgetGlobalVar('passed_id',$passed_id, $SQ_GLOBAL); +sqgetGlobalVar('passed_ent_id',$passed_ent_id, $SQ_GLOBAL); + +sqgetGlobalVar('attach',$attach, SQ_POST); +sqgetGlobalVar('draft',$draft, SQ_POST); +sqgetGlobalVar('draft_id',$draft_id, $SQ_GLOBAL); +sqgetGlobalVar('ent_num',$ent_num, $SQ_GLOBAL); +sqgetGlobalVar('saved_draft',$saved_draft, SQ_FORM); if ( sqgetGlobalVar('delete_draft',$delete_draft) ) { $delete_draft = (int)$delete_draft; @@ -809,7 +815,6 @@ function newMail ($mailbox='', $passed_id='', $passed_ent_id='', $action='', $se $mailprio = ''; } - $identity = ''; $from_o = $orig_header->from; if (is_array($from_o)) { if (isset($from_o[0])) { @@ -850,15 +855,7 @@ function newMail ($mailbox='', $passed_id='', $passed_ent_id='', $action='', $se $send_from_parts = new AddressStructure(); $send_from_parts = $orig_header->parseAddress($send_from); $send_from_add = $send_from_parts->mailbox . '@' . $send_from_parts->host; - $identities = get_identities(); - if (count($identities) > 0) { - foreach($identities as $iddata) { - if ($send_from_add == $iddata['email_address']) { - $identity = $iddata['index']; - break; - } - } - } + $identity = find_identity(array($send_from_add)); $subject = decodeHeader($orig_header->subject,false,false,true); // Remember the receipt settings @@ -1304,12 +1301,12 @@ function showInputForm ($session, $values=false) { . "

\r\n"; } - do_hook('compose_bottom', $null); - if ($compose_new_win=='1') { $oTemplate->display('compose_newwin_close.tpl'); } + do_hook('compose_bottom', $null); + $oErrorHandler->setDelayedErrors(false); $oTemplate->display('footer.tpl'); } @@ -1437,7 +1434,7 @@ function getByteSize($ini_size) { */ function deliverMessage($composeMessage, $draft=false) { global $send_to, $send_to_cc, $send_to_bcc, $mailprio, $subject, $body, - $username, $popuser, $usernamedata, $identity, $idents, $data_dir, + $username, $identity, $idents, $data_dir, $request_mdn, $request_dr, $default_charset, $color, $useSendmail, $domain, $action, $default_move_to_sent, $move_to_sent; global $imapServerAddress, $imapPort, $sent_folder, $key; @@ -1462,45 +1459,24 @@ function deliverMessage($composeMessage, $draft=false) { } $composeMessage->setBody($body); - if (ereg("^([^@%/]+)[@%/](.+)$", $username, $usernamedata)) { - $popuser = $usernamedata[1]; - $domain = $usernamedata[2]; - unset($usernamedata); - } else { - $popuser = $username; - } $reply_to = ''; - $from_mail = $idents[$identity]['email_address']; - $full_name = $idents[$identity]['full_name']; $reply_to = $idents[$identity]['reply_to']; - if (!$from_mail) { - $from_mail = "$popuser@$domain"; - } - $rfc822_header->from = $rfc822_header->parseAddress($from_mail,true); - if ($full_name) { - $from = $rfc822_header->from[0]; - if (!$from->host) $from->host = $domain; - $full_name_encoded = encodeHeader($full_name); - if ($full_name_encoded != $full_name) { - $from_addr = $full_name_encoded .' <'.$from->mailbox.'@'.$from->host.'>'; - } else { - $from_addr = '"'.$full_name .'" <'.$from->mailbox.'@'.$from->host.'>'; - } - $rfc822_header->from = $rfc822_header->parseAddress($from_addr,true); - } + + $from_addr = build_from_header($identity); + $rfc822_header->from = $rfc822_header->parseAddress($from_addr,true); if ($reply_to) { $rfc822_header->reply_to = $rfc822_header->parseAddress($reply_to,true); } /* Receipt: On Read */ if (isset($request_mdn) && $request_mdn) { - $rfc822_header->dnt = $rfc822_header->parseAddress($from_mail,true); + $rfc822_header->dnt = $rfc822_header->parseAddress($from_addr,true); } elseif (isset($rfc822_header->dnt)) { unset($rfc822_header->dnt); } /* Receipt: On Delivery */ if (isset($request_dr) && $request_dr) { - $rfc822_header->more_headers['Return-Receipt-To'] = $from_mail; + $rfc822_header->more_headers['Return-Receipt-To'] = $from->mailbox.'@'.$from->domain; } elseif (isset($rfc822_header->more_headers['Return-Receipt-To'])) { unset($rfc822_header->more_headers['Return-Receipt-To']); }