Add ask_user_info redirect to compose screen
[squirrelmail.git] / src / compose.php
index 96b7444ffb1102c57193bdfc15bf188797d96f6e..9f99f9855554d5adf0045bb29d70255a44905ca9 100644 (file)
  */
 require('../include/init.php');
 
+/* If email_address not set and admin wants us to ask user for it,
+ * redirect to options page. */
+if ( $ask_user_info && getPref($data_dir, $username,'email_address') == "" ) {
+    header("Location: " . get_location() . "/options.php?optpage=personal");
+    exit;
+}
+
 /* SquirrelMail required files. */
 require_once(SM_PATH . 'functions/imap_general.php');
 require_once(SM_PATH . 'functions/imap_messages.php');
@@ -332,7 +339,7 @@ if (sqsession_is_registered('session_expired_post')) {
             }
         }
 
-        $compose_messages = unserialize(urldecode($restoremessages));
+        $compose_messages = unserialize($restoremessages);
         sqsession_register($compose_messages,'compose_messages');
         sqsession_register($composesession,'composesession');
         if (isset($send)) {
@@ -458,7 +465,7 @@ if ($send) {
             /* We entered compose via the search results page */
             $mailbox = 'INBOX'; /* Send 'em to INBOX, that's safe enough */
         }
-        $urlMailbox = urlencode (trim($mailbox));
+        $urlMailbox = urlencode($mailbox);
         if (! isset($passed_id)) {
             $passed_id = 0;
         }
@@ -722,8 +729,8 @@ function newMail ($mailbox='', $passed_id='', $passed_ent_id='', $action='', $se
         $use_signature, $data_dir, $username,
         $key, $imapServerAddress, $imapPort, $compose_messages,
         $composeMessage, $body_quote, $request_mdn, $request_dr,
-        $default_use_mdn, $mdn_user_support;
-    global $languages, $squirrelmail_language, $default_charset;
+        $mdn_user_support, $languages, $squirrelmail_language,
+        $default_charset;
 
     /*
      * Set $default_charset to correspond with the user's selection
@@ -755,7 +762,7 @@ function newMail ($mailbox='', $passed_id='', $passed_ent_id='', $action='', $se
                 (array(), $alt_order = array('text/plain'));
             if (!count($entities)) {
                 $entities = $message->entities[0]->findDisplayEntity
-                    (array(), $alt_order = array('text/plain','html/plain'));
+                    (array(), $alt_order = array('text/plain','text/html'));
             }
             $orig_header = $message->rfc822_header; /* here is the envelope located */
             /* redefine the message for picking up the attachments */
@@ -764,7 +771,7 @@ function newMail ($mailbox='', $passed_id='', $passed_ent_id='', $action='', $se
         } else {
             $entities = $message->findDisplayEntity (array(), $alt_order = array('text/plain'));
             if (!count($entities)) {
-                $entities = $message->findDisplayEntity (array(), $alt_order = array('text/plain','html/plain'));
+                $entities = $message->findDisplayEntity (array(), $alt_order = array('text/plain','text/html'));
             }
             $orig_header = $message->rfc822_header;
         }
@@ -1055,10 +1062,11 @@ function getMessage_RFC822_Attachment($message, $composeMessage, $passed_id,
 }
 
 function showInputForm ($session, $values=false) {
-    global $send_to, $send_to_cc, $body, $startMessage, $action,
-        $color, $use_signature, $signature, $prefix_sig,
+    global $send_to, $send_to_cc, $send_to_bcc,
+        $body, $startMessage, $action,
+        $use_signature, $signature, $prefix_sig,
         $editor_size, $editor_height, $subject, $newmail,
-        $use_javascript_addr_book, $send_to_bcc, $passed_id, $mailbox,
+        $use_javascript_addr_book, $passed_id, $mailbox,
         $from_htmladdr_search, $location_of_buttons, $attachment_dir,
         $username, $data_dir, $identity, $idents, $delete_draft,
         $mailprio, $compose_new_win, $saved_draft, $mail_sent, $sig_first,
@@ -1252,7 +1260,8 @@ function showInputForm ($session, $values=false) {
         }
 
         $attach = array();
-        if ($composeMessage->entities) {
+        // composeMessage can be empty when coming from a restored session
+        if (is_object($composeMessage) && $composeMessage->entities) {
             foreach ($composeMessage->entities as $key => $attachment) {
                 $attached_file = $attachment->att_local_name;
                 if ($attachment->att_local_name || $attachment->body_part) {
@@ -1435,9 +1444,9 @@ function getByteSize($ini_size) {
 function deliverMessage($composeMessage, $draft=false) {
     global $send_to, $send_to_cc, $send_to_bcc, $mailprio, $subject, $body,
         $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;
+        $request_mdn, $request_dr, $default_charset, $useSendmail,
+        $domain, $action, $default_move_to_sent, $move_to_sent,
+        $imapServerAddress, $imapPort, $sent_folder, $key;
 
     $rfc822_header = $composeMessage->rfc822_header;
 
@@ -1606,8 +1615,8 @@ function deliverMessage($composeMessage, $draft=false) {
             $lcl_allow_sent = false;
         }
 
+        global $passed_id, $mailbox;
         if (($fld_sent && $svr_allow_sent && !$lcl_allow_sent) || ($fld_sent && $lcl_allow_sent)) {
-            global $passed_id, $mailbox, $action;
             if ($action == 'reply' || $action == 'reply_all') {
                 $save_reply_with_orig=getPref($data_dir,$username,'save_reply_with_orig');
                 if ($save_reply_with_orig) {
@@ -1622,7 +1631,7 @@ function deliverMessage($composeMessage, $draft=false) {
             unset ($imap_deliver);
         }
 
-        global $passed_id, $mailbox, $action, $what, $iAccount,$startMessage;
+        global $what, $iAccount, $startMessage;
 
         $composeMessage->purgeAttachments();
         if ($action=='reply' || $action=='reply_all' || $action=='forward' || $action=='forward_as_attachment') {
@@ -1674,4 +1683,3 @@ function deliverMessage($composeMessage, $draft=false) {
     }
     return $success;
 }
-?>