作者 邓超

x

@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 namespace Event; 3 namespace Event;
4 4
5 use Model\folderSql; 5 use Model\folderSql;
  6 +use Model\listsSql;
6 use Swlib\Saber; 7 use Swlib\Saber;
7 use Swlib\SaberGM; 8 use Swlib\SaberGM;
8 9
@@ -14,63 +15,42 @@ use Swlib\SaberGM; @@ -14,63 +15,42 @@ use Swlib\SaberGM;
14 * @package Event 15 * @package Event
15 */ 16 */
16 class syncMail { 17 class syncMail {
  18 + /**
  19 + * @var \Lib\Db|\Lib\DbPool
  20 + */
  21 + private $db;
17 22
18 23
19 public function __construct($id,$header,$data) 24 public function __construct($id,$header,$data)
20 { 25 {
21 - $db = db(); 26 + $this->db = db();
  27 +
  28 + // 是否是预热邮件 aicc专用
  29 + if(!empty($header['Aicc-Hot-Mail']) || !empty($header['aicc-hot-mail'])){
  30 + return $this->hot($id);
  31 + }
22 32
  33 + // 是否在指定文件夹内
  34 + $f = folderAlias($this->db->value(folderSql::first($data['folder_id'],'folder')));
  35 + if($f=='发件箱'){
23 if(empty($data['to_name'])){ 36 if(empty($data['to_name'])){
24 $data['to_name'] = []; 37 $data['to_name'] = [];
25 } 38 }
26 39
27 $data['to_name'] = is_array($data['to_name'])?$data['to_name']:json_decode($data['to_name']); 40 $data['to_name'] = is_array($data['to_name'])?$data['to_name']:json_decode($data['to_name']);
28 41
29 - // 是否在指定文件夹内  
30 - $f = $db->value(folderSql::first($data['folder_id'],'folder'));  
31 - $f = folderAlias($f);  
32 - if($f=='收件箱'){  
33 - $f = 's';  
34 - }elseif($f=='发件箱'){  
35 - $f = 'f';  
36 - }elseif($f=='垃圾箱'){  
37 - $f = 'l';  
38 - }  
39 - if(in_array($f,['s','f','l'])){  
40 - // 是否是预热邮件 aicc专用  
41 - if(!empty($header['Aicc-Hot-Mail']) || !empty($header['aicc-hot-mail'])){  
42 - $is_hot = 1;  
43 - }  
44 -  
45 - if(empty($is_hot)){  
46 - if($f=='f'){  
47 $w = ['email' => array_column($data['to_name'],'email')]; 42 $w = ['email' => array_column($data['to_name'],'email')];
48 }else{ 43 }else{
49 $w = ['email' =>$data['from']]; 44 $w = ['email' =>$data['from']];
50 } 45 }
51 -  
52 - if($db->count('select count(*) from `hot_mail` where '.dbWhere($w))){  
53 - $is_hot = 1;  
54 - } 46 + // 是否在 预热邮箱中
  47 + if($this->db->count('select count(*) from `hot_mail` where '.dbWhere($w))){
  48 + return $this->hot($id);
55 } 49 }
56 50
57 - if(!empty($is_hot)){  
58 - try {  
59 - // 记录日志  
60 - logs('识别到aicc预热邮件 '.$id.'-'.$data['email_id'].'-'.$data['from'],LOG_PATH.'/hot-mail.log');  
61 -  
62 - $db->throw()->insert('fob_hot_mail',[  
63 - 'lists_id' => $id,  
64 - 'email_id' => $data['email_id'],  
65 - 'hot_form' => $data['from'],  
66 - 'folder' => $f  
67 - ],false);  
68 -  
69 - }catch (\Throwable $exception){  
70 - logs($exception->getMessage());  
71 - }  
72 - }else{  
73 - if($f == 's'){ 51 +
  52 + // 不是预热邮箱
  53 + if($f=='收件箱'){
74 // mimecast@wsa.aero 54 // mimecast@wsa.aero
75 $filterEmail = ['mimecast@wsa.aero']; 55 $filterEmail = ['mimecast@wsa.aero'];
76 // 邮件过滤 这些邮箱都是系统邮箱 56 // 邮件过滤 这些邮箱都是系统邮箱
@@ -92,13 +72,12 @@ class syncMail { @@ -92,13 +72,12 @@ class syncMail {
92 } 72 }
93 73
94 74
95 -  
96 - }  
97 } 75 }
98 76
99 } 77 }
100 78
101 - 79 + private function hot($id){
  80 + return $this->db->update(listsSql::$table,['is_hots'=>1],dbWhere(['id'=>$id]));
102 } 81 }
103 82
104 /** 83 /**