ソースを参照

UW can return a slightly different format for the LSUB when you step outside
the default_folder_prefix area, also they return NIL for the delimiter which
means the previous regex would always fail as it is looking for a 1 char
delimiter between ""

jangliss 22 年 前
コミット
bde60ca9f9
1 ファイル変更3 行追加2 行削除
  1. 3 2
      functions/imap_mailbox.php

+ 3 - 2
functions/imap_mailbox.php

@@ -722,7 +722,7 @@ function sqimap_mailbox_tree($imap_stream) {
         $has_inbox = false;
         $has_inbox = false;
 
 
         for ($i = 0, $cnt = count($lsub_ary); $i < $cnt; $i++) {
         for ($i = 0, $cnt = count($lsub_ary); $i < $cnt; $i++) {
-            if (preg_match("/^\*\s+LSUB\s+\((.*)\)\s+\"(.{1})\"\s+\"INBOX\".*$/",$lsub_ary[$i])) {
+            if (preg_match("/\/^\*\s+LSUB\s(.*)[\"]?INBOX[\"]?.*$/",$lsub_ary[$i])) {
                 $has_inbox = true;
                 $has_inbox = true;
                 break;
                 break;
             }
             }
@@ -731,7 +731,7 @@ function sqimap_mailbox_tree($imap_stream) {
         if ($has_inbox == false) {
         if ($has_inbox == false) {
             $lsub_ibx = sqimap_run_command( $imap_stream, "LSUB \"\" \"INBOX\"", true, $response, $message );
             $lsub_ibx = sqimap_run_command( $imap_stream, "LSUB \"\" \"INBOX\"", true, $response, $message );
             if (isset($lsub_ibx[0])) {
             if (isset($lsub_ibx[0])) {
-                if (preg_match("/^\*\s+LSUB\s+\((.*)\)\s+\"(.{1})\"\s+\"INBOX\".*$/",$lsub_ibx[0])) {
+                if (preg_match("/^\*\s+LSUB\s+(.*)[\"]?INBOX[\"]?.*$/",$lsub_ibx[0])) {
                     $lsub_ary[] = $lsub_ibx[0];
                     $lsub_ary[] = $lsub_ibx[0];
                 }
                 }
             }
             }
@@ -787,6 +787,7 @@ function sqimap_mailbox_tree($imap_stream) {
                 }
                 }
             }
             }
         }
         }
+
         $boxesnew = sqimap_fill_mailbox_tree($sorted_lsub_ary);
         $boxesnew = sqimap_fill_mailbox_tree($sorted_lsub_ary);
         return $boxesnew;
         return $boxesnew;
     }
     }