正在显示
3 个修改的文件
包含
33 行增加
和
1 行删除
@@ -313,9 +313,11 @@ function folderAliasMap():array { | @@ -313,9 +313,11 @@ function folderAliasMap():array { | ||
313 | 'INBOX' => '收件箱', | 313 | 'INBOX' => '收件箱', |
314 | // qq的 | 314 | // qq的 |
315 | 'Sent Messages' => '发件箱', | 315 | 'Sent Messages' => '发件箱', |
316 | + 'Sent' => '发件箱', | ||
316 | 'Drafts' => '草稿箱', | 317 | 'Drafts' => '草稿箱', |
317 | 'Junk' => '垃圾箱', | 318 | 'Junk' => '垃圾箱', |
318 | 'Deleted Messages' => '回收站', | 319 | 'Deleted Messages' => '回收站', |
320 | + 'Trash' => '回收站', | ||
319 | 321 | ||
320 | '垃圾邮件' => '垃圾箱', | 322 | '垃圾邮件' => '垃圾箱', |
321 | '已删除' => '回收站', | 323 | '已删除' => '回收站', |
@@ -415,6 +415,12 @@ class Imap { | @@ -415,6 +415,12 @@ class Imap { | ||
415 | foreach ($result[1] as $item){ | 415 | foreach ($result[1] as $item){ |
416 | // 解析源数据 | 416 | // 解析源数据 |
417 | if(preg_match('/^\* LIST \(([\\a-z\s]{0,})\) "(.*)" "(.*)"/Ui',$item,$m)){ | 417 | if(preg_match('/^\* LIST \(([\\a-z\s]{0,})\) "(.*)" "(.*)"/Ui',$item,$m)){ |
418 | + $check = explode(' ',$m[1]); | ||
419 | + $check = array_map(function ($v){ | ||
420 | + $v = trim($v); | ||
421 | + $v = trim($v,'\\'); | ||
422 | + return $v; | ||
423 | + },$check); | ||
418 | $folder[] = [ | 424 | $folder[] = [ |
419 | 'parent' => $m[2], | 425 | 'parent' => $m[2], |
420 | // 源文件夹名称,在进行 select的时候必须用未解析的文件夹名称 | 426 | // 源文件夹名称,在进行 select的时候必须用未解析的文件夹名称 |
@@ -423,6 +429,8 @@ class Imap { | @@ -423,6 +429,8 @@ class Imap { | ||
423 | 'parseFolder' => mb_convert_encoding($m[3], 'UTF-8', 'UTF7-IMAP'), | 429 | 'parseFolder' => mb_convert_encoding($m[3], 'UTF-8', 'UTF7-IMAP'), |
424 | // 是否可选择 | 430 | // 是否可选择 |
425 | 'isSelect' => strpos($m[1],'NoSelect')===false, | 431 | 'isSelect' => strpos($m[1],'NoSelect')===false, |
432 | + // 这里里面包含了公共的功能文件夹 比如 草稿,发送,有些邮箱没有 | ||
433 | + 'check' => $check | ||
426 | ]; | 434 | ]; |
427 | } | 435 | } |
428 | } | 436 | } |
@@ -115,9 +115,31 @@ class Mail { | @@ -115,9 +115,31 @@ class Mail { | ||
115 | 115 | ||
116 | if(!$db->count(folderSql::has(['uuid'=>$uuid]))){ | 116 | if(!$db->count(folderSql::has(['uuid'=>$uuid]))){ |
117 | try { | 117 | try { |
118 | + $folder_name = ''; | ||
119 | + // 已发送 | ||
120 | + if(in_array('Send',$folder['check'])){ | ||
121 | + $folder_name = folderAlias('Send'); | ||
122 | + } | ||
123 | + // 草稿 | ||
124 | + elseif(in_array('Drafts',$folder['check'])){ | ||
125 | + $folder_name = folderAlias('Drafts'); | ||
126 | + } | ||
127 | + // 垃圾 | ||
128 | + elseif(in_array('Junk',$folder['check'])){ | ||
129 | + $folder_name = folderAlias('Junk'); | ||
130 | + } | ||
131 | + // 回收站 | ||
132 | + elseif(in_array('Trash',$folder['check'])){ | ||
133 | + $folder_name = folderAlias('Trash'); | ||
134 | + } | ||
135 | + | ||
136 | + if(!$folder_name){ | ||
137 | + $folder_name = folderAlias($folder['parseFolder']); | ||
138 | + } | ||
139 | + | ||
118 | $db->insert(folderSql::$table,[ | 140 | $db->insert(folderSql::$table,[ |
119 | 'email_id' => $email_id, | 141 | 'email_id' => $email_id, |
120 | - 'folder' => folderAlias($folder['parseFolder']), | 142 | + 'folder' => $folder_name, |
121 | 'origin_folder' => $folder['folder'], | 143 | 'origin_folder' => $folder['folder'], |
122 | 'uuid' => $uuid, | 144 | 'uuid' => $uuid, |
123 | 'pid' => $pid | 145 | 'pid' => $pid |
-
请 注册 或 登录 后发表评论