Browse Source

First fixes

stekkel 23 years ago
parent
commit
8449c21271
1 changed files with 44 additions and 24 deletions
  1. 44 24
      src/compose.php

+ 44 - 24
src/compose.php

@@ -182,17 +182,15 @@ if (!isset($mailbox) || $mailbox == '' || ($mailbox == 'None')) {
 }
 
 if (isset($draft)) {
-    include_once ('../src/draft_actions.php');
-    if (! isset($passed_id)) {
-         $passed_id = 0;
-    }
-    if (! isset($MDN)) {
-        $MDN = 'False';
-    }
-    if (! isset($mailprio)) {
-        $mailprio = '';
-    }
-    if (!saveMessageAsDraft($send_to, $send_to_cc, $send_to_bcc, $subject, $body, $passed_id, $mailprio, $session)) {
+        /*
+         * Set $default_charset to correspond with the user's selection
+         * of language interface.
+         */
+        set_my_charset();
+        $composeMessage=$compose_messages[$session];
+	$Result = sendMessage($composeMessage, true);
+
+    if (! sendMessage($composeMessage, true)) {
         showInputForm($session);
         exit();
     } else {
@@ -233,7 +231,6 @@ if (isset($send)) {
          * of language interface.
          */
         set_my_charset();
-
         /*
          * This is to change all newlines to \n
          * We'll change them to \r\n later (in the sendMessage function)
@@ -1062,8 +1059,8 @@ function saveAttachedFiles($session) {
 }
 
 function ClearAttachments($composeMessage) {
-    if ($message->att_local_name) {
-        $attached_file = $message->att_local_name;
+    if ($composeMessage->att_local_name) {
+        $attached_file = $composeMessage->att_local_name;
         if (file_exists($attached_file)) {
             unlink($attached_file);
         }
@@ -1117,11 +1114,11 @@ function getReplyCitation($orig_from) {
    The message also should be constructed by the message class.
 */
 
-function sendMessage($composeMessage) {
+function sendMessage($composeMessage, $draft=false) {
     global $send_to, $send_to_cc, $send_to_bcc, $mailprio, $subject, $body,
            $username, $popuser, $usernamedata, $identity, $data_dir,
 	   $request_mdn, $request_dr, $default_charset, $color, $useSendmail,
-	   $domain;
+	   $domain, $action;
     global $imapServerAddress, $imapPort, $sent_folder, $key;
 
     $rfc822_header = $composeMessage->rfc822_header;
@@ -1208,7 +1205,7 @@ function sendMessage($composeMessage) {
     $rfc822_header->content_type = $content_type;
     $composeMessage->rfc822_header = $rfc822_header;
 
-    if (!$useSendmail) {
+    if (!$useSendmail && !$draft) {
 	require_once('../class/deliver/Deliver_SMTP.class.php');
 	$deliver = new Deliver_SMTP();
 	global $smtpServerAddress, $smtpPort, $use_authenticated_smtp, $pop_before_smtp;
@@ -1220,14 +1217,32 @@ function sendMessage($composeMessage) {
     	    $user = '';
     	    $pass = '';
 	}
-	$authpop = (isset($pop_before_smtp) && $pop_before_smtp) ? true : false;
+	$authPop = (isset($pop_before_smtp) && $pop_before_smtp) ? true : false;
 	$stream = $deliver->initStream($composeMessage,$domain,0,
 	                  $smtpServerAddress, $smtpPort, $authPop);
-    } else {
-      require_once('../class/deliver/Deliver_SentMail.class.php');
-      global $sendmail_path;
-      $deliver = new Deliver_SendMail();
-      $stream = $deliver->initStream($composeMessage,$sendmail_path);
+    } elseif (!$draft) {
+       require_once('../class/deliver/Deliver_SentMail.class.php');
+       global $sendmail_path;
+       $deliver = new Deliver_SendMail();
+       $stream = $deliver->initStream($composeMessage,$sendmail_path);
+    } elseif ($draft) {
+       global $draft_folder;
+       require_once('../class/deliver/Deliver_IMAP.class.php');
+       $imap_deliver = new Deliver_IMAP();
+       $imap_stream = sqimap_login($username, $key, $imapServerAddress,
+                      $imapPort, 0);
+       if (sqimap_mailbox_exists ($imap_stream, $draft_folder)) {
+	    require_once('../class/deliver/Deliver_IMAP.class.php');
+	    $imap_deliver = new Deliver_IMAP();
+	    $length = $imap_deliver->mail($composeMessage);
+	    sqimap_append ($imap_stream, $draft_folder, $length);	 
+	    $imap_deliver->mail($composeMessage, $imap_stream);
+    	    sqimap_append_done ($imap_stream);
+	    sqimap_logout($imap_stream);
+	    unset ($imap_deliver);
+	
+	}
+	return $length;
     }
     $succes = false;
     if ($stream) {
@@ -1247,10 +1262,15 @@ function sendMessage($composeMessage) {
 	    $imap_deliver = new Deliver_IMAP();
 	    $imap_deliver->mail($composeMessage, $imap_stream);
     	    sqimap_append_done ($imap_stream);
-	    sqimap_logout($imap_stream);
 	    unset ($imap_deliver);
 	}
+	global $passed_id, $mailbox, $action;
 	ClearAttachments($composeMessage);
+	if ($action == 'reply' || $action == 'reply_all') {
+	    sqimap_mailbox_select ($imap_stream, $mailbox);
+	    sqimap_messages_flag ($imap_stream, $passed_id, $passed_id, 'Answered', true);
+	}
+    	sqimap_logout($imap_stream);	
     }
     return $succes;
 }