+/*
+ * If we try to forward messages as attachment we have to open a new window
+ * in case of compose in new window or redirect to compose.php
+ */
+if (isset($aMailbox['FORWARD_SESSION'])) {
+ if ($compose_new_win) {
+ /* add the mailbox to the cache */
+ $mailbox_cache[$account.'_'.$aMailbox['NAME']] = $aMailbox;
+ sqsession_register($mailbox_cache,'mailbox_cache');
+ // write the session in order to make sure that the compose window has
+ // access to the composemessages array which is stored in the session
+ session_write_close();
+ // restart the session. Do not use sqsession_is_active because the session_id
+ // isn't empty after a session_write_close
+ sqsession_start();
+ if (!preg_match("/^[0-9]{3,4}$/", $compose_width)) {
+ $compose_width = '640';
+ }
+ if (!preg_match("/^[0-9]{3,4}$/", $compose_height)) {
+ $compose_height = '550';
+ }
+ // do not use &, it will break the query string and $session will not be detected!!!
+ $comp_uri = SM_PATH . 'src/compose.php?mailbox='. urlencode($mailbox).
+ '&session='.urlencode($aMailbox['FORWARD_SESSION']);
+ displayPageHeader($color, $mailbox, "comp_in_new('$comp_uri', $compose_width, $compose_height);", '');
+ } else {
+ $mailbox_cache[$account.'_'.$aMailbox['NAME']] = $aMailbox;
+ sqsession_register($mailbox_cache,'mailbox_cache');
+
+ // save mailboxstate
+ sqsession_register($aMailbox,'aLastSelectedMailbox');
+ session_write_close();
+ // we have to redirect to the compose page
+ $location = SM_PATH . 'src/compose.php?mailbox='. urlencode($mailbox).
+ '&session='.$aMailbox['FORWARD_SESSION'];
+ header("Location: $location");
+ exit;
+ }