diff options
Diffstat (limited to 'program/steps/mail/folders.inc')
-rw-r--r-- | program/steps/mail/folders.inc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/program/steps/mail/folders.inc b/program/steps/mail/folders.inc index 69f3c0e4c..7fd1f62cc 100644 --- a/program/steps/mail/folders.inc +++ b/program/steps/mail/folders.inc @@ -39,8 +39,13 @@ if ($RCMAIL->action=='expunge' && ($mbox = get_input_value('_mbox', RCUBE_INPUT_ // clear mailbox else if ($RCMAIL->action=='purge' && ($mbox = get_input_value('_mbox', RCUBE_INPUT_POST))) { - // we should only be purging trash and junk - if($mbox == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox']) + $delimiter = $IMAP->get_hierarchy_delimiter(); + $trash_regexp = '/^' . preg_quote($CONFIG['trash_mbox'] . $delimiter, '/') . '/'; + $junk_regexp = '/^' . preg_quote($CONFIG['junk_mbox'] . $delimiter, '/') . '/'; + + // we should only be purging trash and junk (or their subfolders) + if ($mbox == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox'] + || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox)) { $success = $IMAP->clear_mailbox($mbox); |