正在显示
2 个修改的文件
包含
18 行增加
和
11 行删除
| @@ -191,18 +191,24 @@ function sync($email_id){ | @@ -191,18 +191,24 @@ function sync($email_id){ | ||
| 191 | if(!$folders){ | 191 | if(!$folders){ | 
| 192 | return 3; | 192 | return 3; | 
| 193 | } | 193 | } | 
| 194 | - $folders = list_to_tree($folders); | 194 | + | 
| 195 | + $call = function ($email_id,$folder_id,$origin_folder) use ($mailServer){ | ||
| 196 | + // 同步父文件夹 | ||
| 197 | + $result = $mailServer->syncMail($email_id,$folder_id,$origin_folder); | ||
| 198 | + _echo('同步文件夹('.$origin_folder.')邮件列表 '.(is_array($result)?count($result):'未同步')); | ||
| 199 | + }; | ||
| 200 | + | ||
| 201 | +// $folders = list_to_tree($folders); | ||
| 195 | foreach ($folders as $folder){ | 202 | foreach ($folders as $folder){ | 
| 196 | try { | 203 | try { | 
| 204 | + | ||
| 205 | + | ||
| 197 | if(empty($folder['_child'])){ | 206 | if(empty($folder['_child'])){ | 
| 198 | - _echo('同步文件夹('.$folder['origin_folder'].')邮件列表'); | ||
| 199 | - // 同步父文件夹 | ||
| 200 | - $mailServer->syncMail($email_id,$folder['id'],$folder['origin_folder']); | 207 | + $call($email_id,$folder['id'],$folder['origin_folder']); | 
| 201 | }else{ | 208 | }else{ | 
| 202 | foreach ($folder['_child'] as $item){ | 209 | foreach ($folder['_child'] as $item){ | 
| 203 | - _echo('同步文件夹('.$item['origin_folder'].')邮件列表'); | ||
| 204 | // 同步子文件夹 | 210 | // 同步子文件夹 | 
| 205 | - $mailServer->syncMail($email_id,$item['id'],$item['origin_folder']); | 211 | + $call($email_id,$item['id'],$item['origin_folder']); | 
| 206 | } | 212 | } | 
| 207 | } | 213 | } | 
| 208 | 214 | 
| @@ -173,17 +173,17 @@ class Mail { | @@ -173,17 +173,17 @@ class Mail { | ||
| 173 | * @param $folder_id | 173 | * @param $folder_id | 
| 174 | * @param string $folder | 174 | * @param string $folder | 
| 175 | * @param null|DbPool $db | 175 | * @param null|DbPool $db | 
| 176 | - * @return bool | 176 | + * @return bool|array | 
| 177 | * @throws \Exception | 177 | * @throws \Exception | 
| 178 | * @author:dc | 178 | * @author:dc | 
| 179 | * @time 2023/2/18 9:54 | 179 | * @time 2023/2/18 9:54 | 
| 180 | */ | 180 | */ | 
| 181 | - public function syncMail($email_id,$folder_id,$folder='INBOX',$db = null):bool { | 181 | + public function syncMail($email_id,$folder_id,$folder='INBOX') { | 
| 182 | if(empty($folder)){ | 182 | if(empty($folder)){ | 
| 183 | return 0; | 183 | return 0; | 
| 184 | } | 184 | } | 
| 185 | // _echo('正在同步文件夹:'.$folder); | 185 | // _echo('正在同步文件夹:'.$folder); | 
| 186 | - $db = $db ? $db : db(); | 186 | + $db = db(); | 
| 187 | // 选择文件夹 | 187 | // 选择文件夹 | 
| 188 | try { | 188 | try { | 
| 189 | $status = $this->client->selectFolder($folder); | 189 | $status = $this->client->selectFolder($folder); | 
| @@ -219,6 +219,7 @@ class Mail { | @@ -219,6 +219,7 @@ class Mail { | ||
| 219 | // | 219 | // | 
| 220 | $nu = 100; | 220 | $nu = 100; | 
| 221 | $msgno = 1; | 221 | $msgno = 1; | 
| 222 | + $success_uid = []; | ||
| 222 | while (true){ | 223 | while (true){ | 
| 223 | 224 | ||
| 224 | // 结束操作了 | 225 | // 结束操作了 | 
| @@ -259,7 +260,7 @@ class Mail { | @@ -259,7 +260,7 @@ class Mail { | ||
| 259 | $blackFolder, | 260 | $blackFolder, | 
| 260 | $db | 261 | $db | 
| 261 | ); | 262 | ); | 
| 262 | - | 263 | + $success_uid = array_merge($success_uid,$uids); | 
| 263 | } | 264 | } | 
| 264 | 265 | ||
| 265 | } | 266 | } | 
| @@ -272,7 +273,7 @@ class Mail { | @@ -272,7 +273,7 @@ class Mail { | ||
| 272 | false | 273 | false | 
| 273 | ); | 274 | ); | 
| 274 | 275 | ||
| 275 | - return true; | 276 | + return $success_uid; | 
| 276 | 277 | ||
| 277 | } | 278 | } | 
| 278 | 279 | 
- 
请 注册 或 登录 后发表评论