X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fcompose.php;h=61d1c208aa2732fc8bcefda5f58c8e0618fc9cd7;hp=ac9ee3fb3c0591f961f06113cb8f10357c5277d8;hb=181538ac1e8af1eca32add5c02b00aa014ad39d4;hpb=73591a9ee2814dd2687fe232934d911d0660d878;ds=sidebyside diff --git a/src/compose.php b/src/compose.php index ac9ee3fb..61d1c208 100644 --- a/src/compose.php +++ b/src/compose.php @@ -369,7 +369,7 @@ if ($send) { } $body = $newBody; - do_hook('compose_send'); + $composeMessage=$compose_messages[$session]; $Result = deliverMessage($composeMessage); @@ -559,7 +559,7 @@ function newMail ($mailbox='', $passed_id='', $passed_ent_id='', $action='', $se $use_signature, $composesession, $data_dir, $username, $username, $key, $imapServerAddress, $imapPort, $compose_messages, $composeMessage; - global $languages, $squirrelmail_language; + global $languages, $squirrelmail_language; $send_to = $send_to_cc = $send_to_bcc = $subject = $identity = ''; $mailprio = 3; @@ -694,7 +694,7 @@ function newMail ($mailbox='', $passed_id='', $passed_ent_id='', $action='', $se case ('forward'): $send_to = ''; $subject = decodeHeader($orig_header->subject,false,true); - if ((substr(strtolower($subject), 0, 4) != 'fwd:') && + if ((substr(strtolower($subject), 0, 4) != 'fwd:') && (substr(strtolower($subject), 0, 5) != '[fwd:') && (substr(strtolower($subject), 0, 6) != '[ fwd:')) { $subject = '[Fwd: ' . $subject . ']'; @@ -774,16 +774,19 @@ function getAttachments($message, &$composeMessage, $passed_id, $entities, $imap if ( !in_array($message->entity_id, $entities) && $message->entity_id) { switch ($message->type0) { case 'message': - if ($message->type1 == 'rfc822') { - $filename = $message->rfc822_header->subject.'.eml'; - if ($filename == "") { - $filename = "untitled-".$message->entity_id.'.eml'; - } - } else { - $filename = $message->getFilename(); - } + if ($message->type1 == 'rfc822') { + $filename = $message->rfc822_header->subject.'.eml'; + if ($filename == "") { + $filename = "untitled-".$message->entity_id.'.eml'; + } + } else { + $filename = $message->getFilename(); + } break; default: + if (!$message->mime_header) { /* temporary hack */ + $message->mime_header = $message->header; + } $filename = $message->getFilename(); break; } @@ -799,12 +802,10 @@ function getAttachments($message, &$composeMessage, $passed_id, $entities, $imap $full_localfilename = "$hashed_attachment_dir/$localfilename"; } $message->att_local_name = $full_localfilename; - if (!$message->mime_header) { /* temporary hack */ - $message->mime_header = $message->header; - } + + $composeMessage->initAttachment($message->type0.'/'.$message->type1,$filename, + $full_localfilename); - $composeMessage->addEntity($message); - /* Write Attachment to file */ $fp = fopen ("$hashed_attachment_dir/$localfilename", 'wb'); fputs($fp, decodeBody(mime_fetch_body($imapConnection, @@ -880,14 +881,14 @@ function showInputForm ($session, $values=false) { } if ($use_javascript_addr_book) { - echo "\n". '' . "\n\n"; + "// -->\n\n\n"; } echo "\n" . '
'; for ($i = 1; $i < $idents; $i ++) { $fn = getPref($data_dir, $username, 'full_name' . $i); $em = getPref($data_dir, $username, 'email_address' . $i); @@ -1084,7 +1086,7 @@ function showInputForm ($session, $values=false) { } else { $maxsize = ''; } - + echo ''; echo ' ' . "\n" . ' ' . "\n" . ' by nonbreaking spaces   + by replacing them back to spaces addressparsing works */ + /* FIXME: How to handle in case of other charsets where "\240" + is not a non breaking space ??? */ + + $send_to = str_replace("\240",' ',$send_to); + $send_to_cc = str_replace("\240",' ',$send_to_cc); + $send_to_bcc = str_replace("\240",' ',$send_to_bcc); + $rfc822_header = $composeMessage->rfc822_header; $abook = addressbook_init(false, true); @@ -1432,6 +1443,10 @@ function deliverMessage($composeMessage, $draft=false) { $rfc822_header->content_type = $content_type; $composeMessage->rfc822_header = $rfc822_header; + /* Here you can modify the message structure just before we hand + it over to deliver */ + do_hook('compose_send'); + if (!$useSendmail && !$draft) { require_once(SM_PATH . 'class/deliver/Deliver_SMTP.class.php'); $deliver = new Deliver_SMTP();