作者 邓超

优化文件夹

@@ -416,7 +416,7 @@ class Imap { @@ -416,7 +416,7 @@ class Imap {
416 $folder = []; 416 $folder = [];
417 foreach ($result[1] as $item){ 417 foreach ($result[1] as $item){
418 // 解析源数据 418 // 解析源数据
419 - if(preg_match('/^\* LIST \(([\\a-z\s]{0,})\) "(.*)" "(.*)"/Ui',$item,$m)){ 419 + if(preg_match('/^\*\sLIST\s\(([\\a-z\s]{0,})\)\s\"(.*)\"\s\"?(.*)\"?$/Ui',$item,$m)){
420 $check = explode(' ',$m[1]); 420 $check = explode(' ',$m[1]);
421 $check = array_map(function ($v){ 421 $check = array_map(function ($v){
422 $v = trim($v); 422 $v = trim($v);
@@ -426,9 +426,9 @@ class Imap { @@ -426,9 +426,9 @@ class Imap {
426 $folder[] = [ 426 $folder[] = [
427 'parent' => $m[2], 427 'parent' => $m[2],
428 // 源文件夹名称,在进行 select的时候必须用未解析的文件夹名称 428 // 源文件夹名称,在进行 select的时候必须用未解析的文件夹名称
429 - 'folder' => $m[3], 429 + 'folder' => trim(trim($m[3]),'"'),
430 // 解析过的文件夹名称 430 // 解析过的文件夹名称
431 - 'parseFolder' => mb_convert_encoding($m[3], 'UTF-8', 'UTF7-IMAP'), 431 + 'parseFolder' => mb_convert_encoding(trim(trim($m[3]),'"'), 'UTF-8', 'UTF7-IMAP'),
432 // 是否可选择 432 // 是否可选择
433 'isSelect' => strpos($m[1],'NoSelect')===false, 433 'isSelect' => strpos($m[1],'NoSelect')===false,
434 // 这里里面包含了公共的功能文件夹 比如 草稿,发送,有些邮箱没有 434 // 这里里面包含了公共的功能文件夹 比如 草稿,发送,有些邮箱没有