diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | config/main.inc.php.dist | 10 | ||||
-rw-r--r-- | program/include/rcube_imap.php | 6 |
3 files changed, 7 insertions, 10 deletions
@@ -1,6 +1,7 @@ CHANGELOG RoundCube Webmail =========================== +- Fix inconsistent behaviour of 'delete_always' option (#1486299) - Fix deleting all messages from last list page (#1486293) - Flag original messages when sending a draft (#1486203) - Changed signature separator when top-posting (#1486330) diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist index 819153f76..6ab8b5281 100644 --- a/config/main.inc.php.dist +++ b/config/main.inc.php.dist @@ -361,13 +361,9 @@ $rcmail_config['log_logins'] = false; /** * 'Delete always' - * This setting reflects if mail should be always marked as deleted, - * even if moving to "Trash" fails. This is necessary in some setups - * because a) people may not have a Trash folder or b) they are over - * quota (and Trash is included in the quota). - * - * This is a failover setting for iil_C_Move when a message is moved - * to the Trash. + * This setting reflects if mail should be always deleted + * when moving to Trash fails. This is necessary in some setups + * when user is over quota and Trash is included in the quota. */ $rcmail_config['delete_always'] = false; diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index 307914eef..4c3c64767 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -1793,7 +1793,7 @@ class rcube_imap // move messages $iil_move = iil_C_Move($this->conn, join(',', $a_uids), $from_mbox, $to_mbox); $moved = !($iil_move === false || $iil_move < 0); - + // send expunge command in order to have the moved message // really deleted from the source mailbox if ($moved) { @@ -1802,8 +1802,8 @@ class rcube_imap $this->_clear_messagecount($to_mbox); } // moving failed - else if (rcmail::get_instance()->config->get('delete_always', false)) { - return iil_C_Delete($this->conn, $from_mbox, join(',', $a_uids)); + else if ($config->get('delete_always', false) && $tbox == $config->get('trash_mbox')) { + return $this->delete_message($a_uids, $fbox); } // remove message ids from search set |