} else {
$no_select_mbx->mailboxname_full = $ary[$i];
}
- $no_select_mbx->mailboxname_sub = imap_utf7_decode_local($ary[$i]);
+ $no_select_mbx->mailboxname_sub = $ary[$i];
$no_select_mbx->is_noselect = true;
$mbx_parent->mbxs[] = $no_select_mbx;
$i--;
}
function check_is_noselect ($lsub_line) {
- return preg_match("/^\* LSUB \([^\)]*\\Noselect[^\)]*\)/i", $lsub_line);
+ return preg_match("/^\* (LSUB|LIST) \([^\)]*\\Noselect[^\)]*\)/i", $lsub_line);
}
/**
if (!isset($boxesnew)) {
global $data_dir, $username, $list_special_folders_first,
- $folder_prefix, $delimiter, $trash_folder, $move_to_trash;
+ $folder_prefix, $delimiter, $trash_folder, $move_to_trash,
+ $imap_server_type;
$inbox_in_list = false;
}
$mbx = find_mailbox_name($lsub_ary[$i]);
+
+ // Force a list for UW as it returns \NoSelect in LIST and not LSUB //
+ if ($imap_server_type == "uw") {
+ $tmp_str = sqimap_run_command( $imap_stream , "LIST \"\" \"$mbx\"" , true, $response, $message );
+ if (isset($tmp_str[0])) {
+ $lsub_ary[$i] = $tmp_str[0];
+ }
+ }
$noselect = check_is_noselect($lsub_ary[$i]);
if (substr($mbx, -1) == $delimiter) {
$mbx = substr($mbx, 0, strlen($mbx) - 1);
$trail_del = false;
$start = 0;
-/* JA - Seems to really screw up folder displays, courier and uw both lose their INBOX when you
- have a default_folder_prefix set on this
-
if (isset($folder_prefix) && ($folder_prefix != '')) {
$start = substr_count($folder_prefix,$delimiter);
} else {
$start = 0;
}
-*/
$cnt = count($mbx_ary);
for ($i=0; $i < $cnt; $i++) {
$r_del_pos = strrpos($mbx_ary[$i]['mbx'], $delimiter);
if ($r_del_pos) {
- $mbx->mailboxname_sub = imap_utf7_decode_local(substr($mbx_ary[$i]['mbx'],$r_del_pos+1));
+ $mbx->mailboxname_sub = substr($mbx_ary[$i]['mbx'],$r_del_pos+1);
} else { /* mailbox is root folder */
- $mbx->mailboxname_sub = imap_utf7_decode_local($mbx_ary[$i]['mbx']);
+ $mbx->mailboxname_sub = $mbx_ary[$i]['mbx'];
}
$mbx->mailboxname_full = $mbx_ary[$i]['mbx'];
$mailboxes->addMbx($mbx, $delimiter, $start, $list_special_folders_first);
}
}
+ sqimap_utf7_decode_mbx_tree($mailboxes);
return $mailboxes;
}
+function sqimap_utf7_decode_mbx_tree(&$mbx_tree) {
+ $mbx_tree->mailboxname_sub=imap_utf7_decode_local($mbx_tree->mailboxname_sub);
+ if ($mbx_tree->mbxs) {
+ $iCnt = count($mbx_tree->mbxs);
+ for ($i=0;$i<$iCnt;++$i) {
+ $mbxs_tree->mbxs[$i] = sqimap_utf7_decode_mbx_tree($mbx_tree->mbxs[$i]);
+ }
+ }
+}
+
?>