正在显示
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 |
-
请 注册 或 登录 后发表评论