+ elseif (substr($k, 0, 1) == 'B') {
+ if ($send_to_bcc) {
+ $send_to_bcc .= ', ';
+ }
+ $send_to_bcc .= $v;
+ }
+ }
+ }
+ showInputForm($session);
+} elseif (isset($html_addr_search)) {
+ if (isset($HTTP_POST_FILES['attachfile']) &&
+ $HTTP_POST_FILES['attachfile']['tmp_name'] &&
+ $HTTP_POST_FILES['attachfile']['tmp_name'] != 'none') {
+ if (saveAttachedFiles($session)) {
+ plain_error_message(_("Could not move/copy file. File not attached"), $color);
+ }
+ }
+ /*
+ * I am using an include so as to elminiate an extra unnecessary
+ * click. If you can think of a better way, please implement it.
+ */
+ include_once('./addrbook_search_html.php');
+} elseif (isset($attach)) {
+ if (saveAttachedFiles($session)) {
+ plain_error_message(_("Could not move/copy file. File not attached"), $color);
+ }
+ if ($compose_new_win == '1') {
+ compose_Header($color, $mailbox);
+ }
+ else {
+ displayPageHeader($color, $mailbox);
+ }
+ showInputForm($session);
+}
+elseif (isset($sigappend)) {
+ $idents = getPref($data_dir, $username, 'identities', 0);
+ if ($idents > 1) {
+ if ($identity == 'default') {
+ $no = 'g';
+ } else {
+ $no = $identity;
+ }
+ $signature = getSig($data_dir, $username, $no);
+ }
+ $body .= "\n\n".($prefix_sig==true? "-- \n":'').$signature;
+ if ($compose_new_win == '1') {
+ compose_Header($color, $mailbox);
+ } else {
+ displayPageHeader($color, $mailbox);
+ }
+ showInputForm($session);
+} elseif (isset($do_delete)) {
+ if ($compose_new_win == '1') {
+ compose_Header($color, $mailbox);
+ }
+ else {
+ displayPageHeader($color, $mailbox);
+ }
+
+ $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
+ if (isset($delete) && is_array($delete)) {
+ foreach($delete as $index) {
+ $attached_file = $hashed_attachment_dir . '/'
+ . $attachments[$index]['localfilename'];
+ unlink ($attached_file);
+ unset ($attachments[$index]);
+ }
+ }
+
+ showInputForm($session);
+
+} elseif (isset($attachedmessages)) {
+
+ /*
+ * This handles the case if we attache message
+ */
+ $imapConnection = sqimap_login($username, $key, $imapServerAddress,
+ $imapPort, 0);
+ if ($compose_new_win == '1') {
+ compose_Header($color, $mailbox);
+ }
+ else {
+ displayPageHeader($color, $mailbox);
+ }
+
+ $newmail = true;
+
+ if (!isset($passed_ent_id)) $passed_ent_id = '';
+ if (!isset($passed_id)) $passed_id = '';
+ if (!isset($mailbox)) $mailbox = '';
+ if (!isset($action)) $action = '';
+
+ $values = newMail($imapConnection,$mailbox,$passed_id,$passed_ent_id, $action, $session);
+ showInputForm($session, $values);
+ sqimap_logout($imapConnection);
+
+} else {
+ /*
+ * This handles the default case as well as the error case
+ * (they had the same code) --> if (isset($smtpErrors))
+ */
+ $imapConnection = sqimap_login($username, $key, $imapServerAddress,
+ $imapPort, 0);
+ if ($compose_new_win == '1') {
+ compose_Header($color, $mailbox);
+ }
+ else {
+ displayPageHeader($color, $mailbox);
+ }
+
+ $newmail = true;
+
+ if (!isset($passed_ent_id)) $passed_ent_id = '';
+ if (!isset($passed_id)) $passed_id = '';
+ if (!isset($mailbox)) $mailbox = '';
+ if (!isset($action)) $action = '';
+
+ $values = newMail($imapConnection,$mailbox,$passed_id,$passed_ent_id, $action, $session);
+ showInputForm($session, $values);
+ sqimap_logout($imapConnection);
+}
+
+exit();
+
+/**************** Only function definitions go below *************/
+
+
+/* This function is used when not sending or adding attachments */
+function newMail ($imapConnection, $mailbox='', $passed_id='', $passed_ent_id='', $action='', $session='') {
+ global $editor_size, $default_use_priority,
+ $use_signature, $composesession;
+
+ $send_to = $send_to_cc = $send_to_bcc = $subject = $mailprio = $body = '';
+
+ if ($passed_id) {
+ sqimap_mailbox_select($imapConnection, $mailbox);
+ $message = sqimap_get_message($imapConnection, $passed_id, $mailbox);
+ $body = '';
+ if ($passed_ent_id) {
+ /* redefine the messsage in case of message/rfc822 */
+ $message = $message->getEntity($passed_ent_id);
+ /* message is an entity which contains the envelope and type0=message
+ * and type1=rfc822. The actual entities are childs from
+ * $message->entities[0]. That's where the encoding and is located
+ */
+
+ $entities = $message->entities[0]->findDisplayEntity
+ (array(), $alt_order = array('text/plain'));
+ if (!count($entities)) {
+ $entities = $message->entities[0]->findDisplayEntity
+ (array(), $alt_order = array('text/plain','html/plain'));
+ }
+ $orig_header = $message->header; /* here is the envelope located */
+ /* redefine the message for picking up the attachments */
+ $message = $message->entities[0];
+
+ } else {
+ $entities = $message->findDisplayEntity (array(), $alt_order = array('text/plain'));
+ if (!count($entities)) {
+ $entities = $message->findDisplayEntity (array(), $alt_order = array('text/plain','html/plain'));
+ }
+ $orig_header = $message->header;
+ }
+ $encoding = $message->header->encoding;
+ $type0 = $message->type0;
+ $type1 = $message->type1;
+
+ foreach ($entities as $ent) {
+ $bodypart = decodeBody(
+ mime_fetch_body($imapConnection, $passed_id, $ent),
+ $encoding);
+ if ($type1 == 'html') {
+ $bodypart = strip_tags($bodypart);
+ }
+ $body .= $bodypart;
+ }
+ if ($default_use_priority) {
+ $mailprio = substr($orig_header->priority,0,1);
+ } else {
+ $mailprio = '';
+ }
+ ClearAttachments($session);
+ switch ($action) {
+ case ('draft'):
+ $use_signature = FALSE;
+ $send_to = $orig_header->getAddr_s('to');
+ $send_to_cc = $orig_header->getAddr_s('cc');
+ $send_to_bcc = $orig_header->getAddr_s('bcc');
+ $subject = $orig_header->subject;
+
+ $body_ary = explode("\n", $body);
+ $cnt = count($body_ary) ;
+ $body = '';
+ for ($i=0; $i < $cnt; $i++) {
+ if (!ereg("^[>\\s]*$", $body_ary[$i])) {
+ sqWordWrap($body_ary[$i], $editor_size );
+ $body .= $body_ary[$i] . "\n";
+ }
+ unset($body_ary[$i]);