From c5157fb74ad800c1d7473ad053c192cb543abf28 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 29 Jul 2015 13:43:07 -0400
Subject: [PATCH] Fix draft removal after a message is sent and storing sent message is disabled (#1490467)

---
 CHANGELOG                       |    1 +
 program/steps/mail/sendmail.inc |   24 ++++++++++++------------
 2 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 55c906e..28c34ac 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,6 +3,7 @@
 
 - Fix SQL error on logout when using session_storage=php (#1490421)
 - Fix so plain text signature field uses monospace font (#1490435)
+- Fix draft removal after a message is sent and storing sent message is disabled (#1490467)
 
 RELEASE 1.0.6
 -------------
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 34801d8..c47f3d3 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -616,24 +616,24 @@
             $OUTPUT->send('iframe');
         }
     }
-
-    // delete previous saved draft
-    if ($saved && ($old_id = rcube_utils::get_input_value('_draft_saveid', rcube_utils::INPUT_POST))) {
-        $deleted = $RCMAIL->storage->delete_message($old_id, $drafts_mbox);
-
-        // raise error if deletion of old draft failed
-        if (!$deleted) {
-            rcube::raise_error(array('code' => 800, 'type' => 'imap',
-                'file' => __FILE__, 'line' => __LINE__,
-                'message' => "Could not delete message from $drafts_mbox"), true, false);
-        }
-    }
 }
 // remove temp file
 else if ($mailbody_file) {
     unlink($mailbody_file);
 }
 
+// delete previous saved draft
+$old_id = rcube_utils::get_input_value('_draft_saveid', rcube_utils::INPUT_POST);
+if ($old_id && ($sent || $saved)) {
+    $deleted = $RCMAIL->storage->delete_message($old_id, $drafts_mbox);
+
+    // raise error if deletion of old draft failed
+    if (!$deleted) {
+        rcube::raise_error(array('code' => 800, 'type' => 'imap',
+            'file' => __FILE__, 'line' => __LINE__,
+            'message' => "Could not delete message from $drafts_mbox"), true, false);
+    }
+}
 
 if ($savedraft) {
     // remember new draft-uid ($saved could be an UID or true/false here)

--
Gitblit v1.9.1