X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fimap_mailbox.php;h=f3121520b047c36bce384b93b0616b7ee7cb4f3d;hb=328869924180ada40dae9f4625520cb03b93ff98;hp=3b7ca6dd7c180a0dd42282909de25e8d59bae516;hpb=2c617aa5d1e4a3ce976cbf7a9372c425bbe5d445;p=squirrelmail.git diff --git a/functions/imap_mailbox.php b/functions/imap_mailbox.php index 3b7ca6dd..f3121520 100755 --- a/functions/imap_mailbox.php +++ b/functions/imap_mailbox.php @@ -10,7 +10,8 @@ * * $Id$ */ - +require_once('../functions/imap_utf7_encode_local.php'); +require_once('../functions/imap_utf7_decode_local.php'); global $boxesnew; class mailboxes { @@ -214,6 +215,7 @@ function sqimap_mailbox_create ($imap_stream, $mailbox, $type) { if (strtolower($type) == 'noselect') { $mailbox .= $delimiter; } + $mailbox = imap_utf7_encode_local($mailbox); $read_ary = sqimap_run_command($imap_stream, "CREATE \"$mailbox\"", true, $response, $message); sqimap_subscribe ($imap_stream, $mailbox); @@ -343,10 +345,10 @@ function sqimap_mailbox_parse ($line, $line_lsub) { else { $boxesall[$g]['formatted'] = ''; } - $boxesall[$g]['formatted'] .= readShortMailboxName($mailbox, $delimiter); + $boxesall[$g]['formatted'] .= imap_utf7_decode_local(readShortMailboxName($mailbox, $delimiter)); } else { - $boxesall[$g]['formatted'] = $mailbox; + $boxesall[$g]['formatted'] = imap_utf7_decode_local($mailbox); } $boxesall[$g]['unformatted-dm'] = $mailbox; @@ -565,6 +567,7 @@ function sqimap_mailbox_list($imap_stream) { $used[$k] = true; } $spec_sub = str_replace(' ', '', $box['formatted']); + $spec_sub = str_replace('*', '', $box['formatted']); /* In case of problems with preg here is a ereg version @@ -635,10 +638,10 @@ function sqimap_mailbox_list_all($imap_stream) { else { $boxes[$g]['formatted'] = ''; } - $boxes[$g]['formatted'] .= readShortMailboxName($mailbox, $delimiter); + $boxes[$g]['formatted'] .= imap_utf7_decode_local(readShortMailboxName($mailbox, $delimiter)); } else { - $boxes[$g]['formatted'] = $mailbox; + $boxes[$g]['formatted'] = imap_utf7_decode_local($mailbox); } $boxes[$g]['unformatted-dm'] = $mailbox; @@ -683,9 +686,7 @@ function sqimap_mailbox_tree($imap_stream) { if ( !isset( $boxesnew ) ) { global $data_dir, $username, $list_special_folders_first, - $folder_prefix, $trash_folder, $sent_folder, $draft_folder, - $move_to_trash, $move_to_sent, $save_as_draft, - $delimiter; + $folder_prefix, $delimiter; $inbox_in_list = false; @@ -716,11 +717,16 @@ function sqimap_mailbox_tree($imap_stream) { $lsub_ary[$i] = $regs[1] . '"' . addslashes(trim($lsub_ary[$i])) . '"' . $regs[2]; } - if (preg_match("/^\*\s+LSUB\s+\((.*)\)\s+\"(.*)\"\s+\"?(.+(?=\")|.+).*$/",$lsub_ary[$i],$regs)) { - $flag = $regs[1]; - $mbx = trim($regs[3]); - $sorted_lsub_ary[] = array ('mbx' => $mbx, 'flag' => $flag); - } +// if (preg_match("/^\*\s+LSUB\s+\((.*)\)\s+\"(.*)\"\s+\"?(.+(?=\")|.+).*$/",$lsub_ary[$i],$regs)) { +// $flag = $regs[1]; +// $mbx = trim($regs[3]); +// $sorted_lsub_ary[] = array ('mbx' => $mbx, 'flag' => $flag); +// } + $mbx = find_mailbox_name($lsub_ary[$i]); + if (substr($mbx, -1) == $delimiter) { + $mbx = substr($mbx, 0, strlen($mbx) - 1); + } + $sorted_lsub_ary[] = array ('mbx' => $mbx, 'flag' => ''); } array_multisort($sorted_lsub_ary, SORT_ASC, SORT_STRING); @@ -745,11 +751,23 @@ function sqimap_mailbox_tree($imap_stream) { $inbox_ary[0] = $regs[1] . '"' . addslashes(trim($inbox_ary[1])) . '"' . $regs[2]; } - if (preg_match("/^\*\s+LIST\s+\((.*)\)\s+\"(.*)\"\s+\"?(.+(?=\")|.+).*$/",$inbox_ary[0],$regs)) { - $flag = $regs[1]; - $mbx = trim($regs[3]); - $sorted_lsub_ary[] = array ('mbx' => $mbx, 'flag' => $flag); - } + $mbx = find_mailbox_name($inbox_ary[0]); + if (substr($mbx, -1) == $delimiter) { + $mbx = substr($mbx, 0, strlen($mbx) - 1); + } + if ( $mbx == 'INBOX') { + $sorted_lsub_ary[] = array ('mbx' => $mbx, 'flag' => ''); + sqimap_subscribe($imap_stream, 'INBOX'); + } + +// if (preg_match("/^\*\s+LIST\s+\((.*)\)\s+\"(.*)\"\s+\"?(.+(?=\")|.+).*$/",$inbox_ary[0],$regs)) { +// $flag = $regs[1]; +// $mbx = trim($regs[3]); +// if (substr($mbx, -1) == $delimiter) { +// $mbx = substr($mbx, 0, strlen($mbx) - 1); +// } +// $sorted_lsub_ary[] = array ('mbx' => $mbx, 'flag' => $flag); +// } } for ($i=0 ; $i < count($sorted_lsub_ary); $i++) {