正在显示
6 个修改的文件
包含
61 行增加
和
68 行删除
| @@ -41,7 +41,26 @@ class AutoMail { | @@ -41,7 +41,26 @@ class AutoMail { | ||
| 41 | $not_must[] = ["match_phrase"=>["from.email"=>$str]]; | 41 | $not_must[] = ["match_phrase"=>["from.email"=>$str]]; |
| 42 | } | 42 | } |
| 43 | } | 43 | } |
| 44 | - | 44 | +echo json_encode([ |
| 45 | + "_source" => ["uuid"], | ||
| 46 | + "query"=>[ | ||
| 47 | + "bool"=>[ | ||
| 48 | + "must"=>[ | ||
| 49 | + ["term"=>["folder_as_int" => 1]], // 收件箱 | ||
| 50 | + ["term"=>["is_auto" => 0]], // 非auto | ||
| 51 | + ["term"=>["is_hots" => 0]], // 非预热 | ||
| 52 | + ["term"=>["deleted" => 0]], // 非删除 | ||
| 53 | + // 自动关键字 | ||
| 54 | + [ | ||
| 55 | + "bool" => [ | ||
| 56 | + "should"=> $not_must, | ||
| 57 | + "minimum_should_match" => 1 | ||
| 58 | + ] | ||
| 59 | + ] | ||
| 60 | + ] | ||
| 61 | + ] | ||
| 62 | + ] | ||
| 63 | + ]);exit; | ||
| 45 | // 查询自动回的邮件 | 64 | // 查询自动回的邮件 |
| 46 | $lists = $es->search([ | 65 | $lists = $es->search([ |
| 47 | "_source" => ["uuid"], | 66 | "_source" => ["uuid"], |
| @@ -100,13 +100,15 @@ class SyncToEsCmd { | @@ -100,13 +100,15 @@ class SyncToEsCmd { | ||
| 100 | public function handler(){ | 100 | public function handler(){ |
| 101 | 101 | ||
| 102 | $es = es(); // 第一个库,即将丢弃 | 102 | $es = es(); // 第一个库,即将丢弃 |
| 103 | - $es2 = es('email_lists'); // 第二个库 新 | 103 | + $es2 = es('email_lists_copy'); // 第二个库 新 |
| 104 | 104 | ||
| 105 | while (!$this->isStop()){ | 105 | while (!$this->isStop()){ |
| 106 | 106 | ||
| 107 | $id = redis()->lPop('sync_to_es'); | 107 | $id = redis()->lPop('sync_to_es'); |
| 108 | $code = 500; | 108 | $code = 500; |
| 109 | if($id){ | 109 | if($id){ |
| 110 | + // redis()->rPush('sync_to_es2',$id); | ||
| 111 | + | ||
| 110 | $doc_id = ''; | 112 | $doc_id = ''; |
| 111 | try { | 113 | try { |
| 112 | $data = $this->db->throw()->first(\Model\listsSql::first('`id` = '.$id)); | 114 | $data = $this->db->throw()->first(\Model\listsSql::first('`id` = '.$id)); |
| @@ -45,7 +45,7 @@ class SyncToEsCmd { | @@ -45,7 +45,7 @@ class SyncToEsCmd { | ||
| 45 | 45 | ||
| 46 | 46 | ||
| 47 | if(S_V2){ | 47 | if(S_V2){ |
| 48 | - $es = es('email_lists'); | 48 | + $es = es('email_lists_copy'); |
| 49 | }else{ | 49 | }else{ |
| 50 | $es = es(); | 50 | $es = es(); |
| 51 | } | 51 | } |
| @@ -76,7 +76,10 @@ class SyncToEsCmd { | @@ -76,7 +76,10 @@ class SyncToEsCmd { | ||
| 76 | if($id){ | 76 | if($id){ |
| 77 | $doc_id = ''; | 77 | $doc_id = ''; |
| 78 | try { | 78 | try { |
| 79 | - $data = $db->throw()->first(\Model\listsSql::first('`id` = '.$id)); | 79 | + $data = $db->throw()->first('select * from `lists_hot` where `id` = '.$id); |
| 80 | + if(!$data){ | ||
| 81 | + $data = $db->throw()->first('select * from `lists` where `id` = '.$id); | ||
| 82 | + } | ||
| 80 | }catch (Throwable $e){ | 83 | }catch (Throwable $e){ |
| 81 | redis()->rPush('sync_to_es'.S_V2,$id); | 84 | redis()->rPush('sync_to_es'.S_V2,$id); |
| 82 | _echo('sync to es '.$e->getMessage()); | 85 | _echo('sync to es '.$e->getMessage()); |
| @@ -89,7 +92,7 @@ class SyncToEsCmd { | @@ -89,7 +92,7 @@ class SyncToEsCmd { | ||
| 89 | continue; | 92 | continue; |
| 90 | } | 93 | } |
| 91 | // 设置 进程 是否在运行 | 94 | // 设置 进程 是否在运行 |
| 92 | - $data['is_auto']=$db->count('select count(*) from `lists_auto` where `list_id` = '.$data['id']) ? 1 : 0; | 95 | + $data['is_auto'] = $db->count('select count(*) from `lists_auto` where `list_id` = '.$data['id']) ? 1 : 0; |
| 93 | try { | 96 | try { |
| 94 | // 文件夹 | 97 | // 文件夹 |
| 95 | if(empty($this->folders[$data['folder_id']])){ | 98 | if(empty($this->folders[$data['folder_id']])){ |
| @@ -137,7 +140,10 @@ class SyncToEsCmd { | @@ -137,7 +140,10 @@ class SyncToEsCmd { | ||
| 137 | @file_put_contents(LOG_PATH.'/sync_es_fail'.S_V2.'.log',$id."\n",FILE_APPEND); | 140 | @file_put_contents(LOG_PATH.'/sync_es_fail'.S_V2.'.log',$id."\n",FILE_APPEND); |
| 138 | _echo('同步es: '.$doc_id.'===>'.$code); | 141 | _echo('同步es: '.$doc_id.'===>'.$code); |
| 139 | } | 142 | } |
| 140 | - | 143 | + // _echo('同步es: '.$doc_id.'===>'.$code); |
| 144 | + // print_r($data); | ||
| 145 | + // var_dump($id); | ||
| 146 | + // exit; | ||
| 141 | }else{ | 147 | }else{ |
| 142 | sleep(1); | 148 | sleep(1); |
| 143 | } | 149 | } |
| @@ -13,9 +13,11 @@ use Model\listsSql; | @@ -13,9 +13,11 @@ use Model\listsSql; | ||
| 13 | * @package Controller | 13 | * @package Controller |
| 14 | */ | 14 | */ |
| 15 | class Test { | 15 | class Test { |
| 16 | + public function home(){ | ||
| 17 | + return 404; | ||
| 18 | + } | ||
| 16 | 19 | ||
| 17 | - | ||
| 18 | - public function home(){ | 20 | + public function a(){ |
| 19 | 21 | ||
| 20 | return 404; | 22 | return 404; |
| 21 | 23 | ||
| @@ -67,19 +69,20 @@ return 404; | @@ -67,19 +69,20 @@ return 404; | ||
| 67 | // app()->e(404,404); | 69 | // app()->e(404,404); |
| 68 | // } | 70 | // } |
| 69 | // | 71 | // |
| 70 | -//// $email = db()->first(emailSql::first(app()->request('mid'))); | 72 | + $email = db()->first(emailSql::first(app()->request('mid'))); |
| 71 | // | 73 | // |
| 72 | -// $config = (new \Lib\Imap\ImapConfig()) | ||
| 73 | -// ->setEmail('CService001@spicay-meart.com') | ||
| 74 | -// ->setPassword('5YmS77JBb7JJwuaD') | ||
| 75 | -// ->setHost('imap.exmail.qq.com'); | 74 | + $config = (new \Lib\Imap\ImapConfig()) |
| 75 | + ->setEmail($email['email']) | ||
| 76 | + ->setPassword(base64_decode($email['password'])) | ||
| 77 | + ->setHost($email['imap']); | ||
| 76 | 78 | ||
| 77 | 79 | ||
| 78 | $imap = \Lib\Imap\ImapPool::get($config); | 80 | $imap = \Lib\Imap\ImapPool::get($config); |
| 79 | //$imap->debug(); | 81 | //$imap->debug(); |
| 80 | $login = $imap->login(); | 82 | $login = $imap->login(); |
| 81 | if($login->isOk()) { | 83 | if($login->isOk()) { |
| 82 | - $msgno = (int) app()->request('msgno'); | 84 | + $uid = (int) app()->request('uid'); |
| 85 | + $page = (int) app()->request('page',1); | ||
| 83 | // foreach ($imap->getFolders()->all() as $a){ | 86 | // foreach ($imap->getFolders()->all() as $a){ |
| 84 | // echo $a->folder; | 87 | // echo $a->folder; |
| 85 | // echo '=>'; | 88 | // echo '=>'; |
| @@ -87,18 +90,27 @@ return 404; | @@ -87,18 +90,27 @@ return 404; | ||
| 87 | // echo '|'; | 90 | // echo '|'; |
| 88 | // }; | 91 | // }; |
| 89 | $folder = $imap->folder('INBOX'); | 92 | $folder = $imap->folder('INBOX'); |
| 93 | + | ||
| 94 | + if($uid){ | ||
| 95 | + $msg = $folder->msg()->uid([$uid])->get()->first(); | ||
| 96 | + | ||
| 97 | + return $msg->body->getHtml(); | ||
| 98 | + } | ||
| 99 | + | ||
| 100 | + | ||
| 90 | echo '总共有:'; | 101 | echo '总共有:'; |
| 91 | echo $folder->getTotal(); | 102 | echo $folder->getTotal(); |
| 92 | echo "<br>"; | 103 | echo "<br>"; |
| 93 | echo "<br>"; | 104 | echo "<br>"; |
| 94 | - echo '<a href="?msgno='.($msgno+1).'">下一个</a>'; | 105 | + echo '<a href="?mid='.$email['id'].'&page='.($page+1).'">下一页</a>'; |
| 95 | echo "<br>"; | 106 | echo "<br>"; |
| 96 | echo "<hr>"; | 107 | echo "<hr>"; |
| 97 | 108 | ||
| 98 | - $msgs = $folder->msg()->forPage(449)->get(); | 109 | + |
| 110 | + $msgs = $folder->msg()->forPage($page)->get(); | ||
| 99 | if ($msgs) { | 111 | if ($msgs) { |
| 100 | - $msgs->each(function ($msg){ | ||
| 101 | - echo '<p>'.$msg->uid.'==>'.$msg->header->getSubject().' =====> '.date('Y-m-d H:i:s',strtotime($msg->date)).'</p>'; | 112 | + $msgs->each(function ($msg) use($email){ |
| 113 | + echo '<p><a href="?mid='.$email['id'].'&uid='.$msg->uid.'">'.$msg->uid.'==>'.$msg->header->getSubject().' =====> '.date('Y-m-d H:i:s',strtotime($msg->date)).'</a></p>'; | ||
| 102 | }); | 114 | }); |
| 103 | // echo $msg->header->getSubject(); | 115 | // echo $msg->header->getSubject(); |
| 104 | // echo '<br>-------------------------------------------------<br>'; | 116 | // echo '<br>-------------------------------------------------<br>'; |
| @@ -293,7 +293,7 @@ class MailListV2Es extends Base { | @@ -293,7 +293,7 @@ class MailListV2Es extends Base { | ||
| 293 | } | 293 | } |
| 294 | 294 | ||
| 295 | // 手动触发同步es | 295 | // 手动触发同步es |
| 296 | - if(empty($v['is_auto']) && $v['folder_name']=='收件箱') redis()->rPush('sync_to_es',$v['id']); | 296 | + // if(empty($v['is_auto']) && $v['folder_name']=='收件箱') redis()->rPush('sync_to_es',$v['id']); |
| 297 | 297 | ||
| 298 | return $v; | 298 | return $v; |
| 299 | },$lists?:[]); | 299 | },$lists?:[]); |
| @@ -31,54 +31,6 @@ class MailListV2Es2 extends Base { | @@ -31,54 +31,6 @@ class MailListV2Es2 extends Base { | ||
| 31 | $this->es = \es('email_lists'); | 31 | $this->es = \es('email_lists'); |
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | - /** | ||
| 35 | - * 当前邮箱下指定的文件夹 | ||
| 36 | - * @param string $folder | ||
| 37 | - * @return array | ||
| 38 | - * @throws \Lib\Err | ||
| 39 | - * @author:dc | ||
| 40 | - * @time 2024/7/19 11:37 | ||
| 41 | - */ | ||
| 42 | - private function getFolderId(string $folder,$emails=[]){ | ||
| 43 | - if(!$emails){ | ||
| 44 | - $emails = $this->getEmails('id'); | ||
| 45 | - } | ||
| 46 | - $k = md5(json_encode($emails)); | ||
| 47 | - // 查询 文件夹 | ||
| 48 | - static $folderList; | ||
| 49 | - if(empty($folderList[$k])){ | ||
| 50 | - $folderList[$k] = db()->all(folderSql::all($emails)); | ||
| 51 | - } | ||
| 52 | - $folder_id = []; | ||
| 53 | - // 文件夹id | ||
| 54 | - if($folderList[$k]){ | ||
| 55 | - foreach ($folderList[$k] as $item){ | ||
| 56 | - if(folderAlias($item['folder']) == $folder){ | ||
| 57 | - $folder_id[] = $item['id']; | ||
| 58 | - } | ||
| 59 | - } | ||
| 60 | - } | ||
| 61 | - if(!$folder_id){ | ||
| 62 | - app()->e('folder_not_fount'); | ||
| 63 | - } | ||
| 64 | - | ||
| 65 | - return $folder_id; | ||
| 66 | - } | ||
| 67 | - | ||
| 68 | - | ||
| 69 | - /** | ||
| 70 | - * 处理like条件 | ||
| 71 | - * @param $str | ||
| 72 | - * @return string | ||
| 73 | - * @author:dc | ||
| 74 | - * @time 2024/9/4 11:14 | ||
| 75 | - */ | ||
| 76 | - private function getLikeStr($str){ | ||
| 77 | - if(str_starts_with($str, '^')){ | ||
| 78 | - return addslashes(mb_substr($str,1,99)).'%%'; | ||
| 79 | - } | ||
| 80 | - return '%%'.addslashes($str).'%%'; | ||
| 81 | - } | ||
| 82 | 34 | ||
| 83 | /** | 35 | /** |
| 84 | * 邮件列表 | 36 | * 邮件列表 |
| @@ -276,7 +228,7 @@ class MailListV2Es2 extends Base { | @@ -276,7 +228,7 @@ class MailListV2Es2 extends Base { | ||
| 276 | } | 228 | } |
| 277 | 229 | ||
| 278 | // 手动触发同步es | 230 | // 手动触发同步es |
| 279 | - redis()->rPush('sync_to_es',$v['id']); | 231 | + // redis()->rPush('sync_to_es',$v['id']); |
| 280 | 232 | ||
| 281 | return $v; | 233 | return $v; |
| 282 | },$lists?:[]); | 234 | },$lists?:[]); |
| @@ -488,6 +440,8 @@ class MailListV2Es2 extends Base { | @@ -488,6 +440,8 @@ class MailListV2Es2 extends Base { | ||
| 488 | */ | 440 | */ |
| 489 | private function countFlagged($body){ | 441 | private function countFlagged($body){ |
| 490 | $body['query']['bool']['must'][] = ['term'=>['flagged'=>1]]; | 442 | $body['query']['bool']['must'][] = ['term'=>['flagged'=>1]]; |
| 443 | + $body['query']['bool']['must'][] = ['terms'=>['folder_as_int'=>[1,2,3,4,5]]]; | ||
| 444 | + | ||
| 491 | if($this->assignSql('收件箱')) | 445 | if($this->assignSql('收件箱')) |
| 492 | $body['query']['bool']['must'][] = $this->assignSql('收件箱'); | 446 | $body['query']['bool']['must'][] = $this->assignSql('收件箱'); |
| 493 | return $this->es->count($body); | 447 | return $this->es->count($body); |
-
请 注册 或 登录 后发表评论