-
-// FIX ME, why not check if the folders are defined IMHO move_to_sent, move_to_trash has nothing todo with it
-$count_special_folders = 0;
-$num_max = 1;
-if (strtolower($imap_server_type) == "courier" || $move_to_trash) {
- $num_max++;
-}
-if ($move_to_sent) {
- $num_max++;
-}
-if ($save_as_draft) {
- $num_max++;
-}
-
-// What if move_to_sent = false and $sent_folder is set? Should it still be skipped?
-
-for ($p = 0, $cnt = count($boxes); $p < $cnt && $count_special_folders < $num_max; $p++) {
- switch ($boxes[$p]['unformatted']) {
- case (strtoupper($boxes[$p]['unformatted']) == 'INBOX'):
- ++$count_special_folders;
- $skip_folders[] = $boxes[$p]['unformatted'];
- break;
- // FIX ME inbox.trash should be set in conf.pl
- case 'inbox.trash':
- if (strtolower($imap_server_type) == 'courier') {
- ++$count_special_folders;
- }
- break;
- case $trash_folder:
- ++$count_special_folders;
- $skip_folders[] = $trash_folder;
- break;
- case $sent_folder:
- ++$count_special_folders;
- $skip_folders[] = $sent_folder;
- break;
- case $draft_folder:
- ++$count_special_folders;
- $skip_folders[] = $draft_folder;
- break;
- default: break;
+foreach ($boxes as $index => $aBoxData) {
+ if (isSpecialMailbox($aBoxData['unformatted'],false) &&
+ ! in_array($aBoxData['unformatted'],$skip_folders)) {
+ $skip_folders[] = $aBoxData['unformatted'];