作者 朱世亮

219120-记录AI退信邮件

@@ -47,6 +47,9 @@ define('APP_DEBUG',true); @@ -47,6 +47,9 @@ define('APP_DEBUG',true);
47 // 当前的访问域名 47 // 当前的访问域名
48 define('APP_HOST','http://www.mail.cn'); 48 define('APP_HOST','http://www.mail.cn');
49 49
  50 +// 超迹AI的线上地址
  51 +define('SUPER_HOST', 'https://fob.ai.cc/');
  52 +
50 53
51 54
52 55
@@ -616,6 +616,11 @@ class SyncMail { @@ -616,6 +616,11 @@ class SyncMail {
616 } 616 }
617 } 617 }
618 618
  619 + // 退信拿body
  620 + if ($item->getFolderName()=='INBOX'&&stripos($data['subject'], '退信')){
  621 + $isBody = true;
  622 + }
  623 +
619 //TODO 如果header 头信息里面有2段数据 第二段就作为内容解析 624 //TODO 如果header 头信息里面有2段数据 第二段就作为内容解析
620 if($item->header->body()){ 625 if($item->header->body()){
621 $parseBody = $item->header->body(); 626 $parseBody = $item->header->body();
@@ -627,6 +632,29 @@ class SyncMail { @@ -627,6 +632,29 @@ class SyncMail {
627 632
628 // 是否同步body内容 633 // 是否同步body内容
629 if($parseBody instanceof Body){ 634 if($parseBody instanceof Body){
  635 + // 修改完成重启sync.php脚本
  636 + $mailBody = $parseBody->getText();
  637 + if ($item->getFolderName() == 'INBOX' && stripos($mailBody, '退信')) {
  638 + // 日志记录
  639 + logs('退信邮件,id【' . $id . '】body:' . $mailBody, '../log/returned-mail-record/' . date('Y-m-d H:i:s') . '.log');
  640 + // 通知到黑格 es
  641 + try {
  642 + SaberGM::post(SUPER_HOST.'api/mailbox_status_set', [
  643 + 'id' => $id,
  644 + 'subject' => $data['subject'],
  645 + 'udate' => $data['udate'],
  646 + 'from' => $data['from'],
  647 + 'body' => $mailBody,
  648 + 'tos' => array_column($data['to_name'], 'email')
  649 + ]);
  650 + } catch (\Throwable $exception) {
  651 + logs('推送到黑格异常:' . $exception, '../log/returned-mail-record/' . date('Y-m-d H:i:s') . '.log');
  652 + }
  653 + if (php_sapi_name() == 'cli') {
  654 + continue; // 不记录数据库,退信非常庞大,磁盘顶不住
  655 + }
  656 + }
  657 +
630 // 记录邮件体 源文件 658 // 记录邮件体 源文件
631 // Log::put( 659 // Log::put(
632 // ROOT_PATH.'/eml/'.$this->email['email']."/".$item->getFolderName().'/'.$item->uid.'.eml', 660 // ROOT_PATH.'/eml/'.$this->email['email']."/".$item->getFolderName().'/'.$item->uid.'.eml',
@@ -640,7 +668,7 @@ class SyncMail { @@ -640,7 +668,7 @@ class SyncMail {
640 668
641 669
642 $body['text_html'][] = [ 670 $body['text_html'][] = [
643 - 'body' => base64_encode($parseBody->getHtml() ? : $parseBody->getText()), 671 + 'body' => base64_encode($parseBody->getHtml() ? : $mailBody),
644 'type' => $parseBody->getHtml()?'text/html':'text/plain', 672 'type' => $parseBody->getHtml()?'text/html':'text/plain',
645 'charset' => 'utf-8', 673 'charset' => 'utf-8',
646 'encode' => 'base64', 674 'encode' => 'base64',
@@ -682,7 +710,7 @@ class SyncMail { @@ -682,7 +710,7 @@ class SyncMail {
682 // 更新描述 710 // 更新描述
683 $this->db->update(listsSql::$table,[ 711 $this->db->update(listsSql::$table,[
684 'description'=> 712 'description'=>
685 - Fun::mb_convert_encoding(mb_substr($parseBody->getText(),0,150),'utf-8') 713 + Fun::mb_convert_encoding(mb_substr($mailBody,0,150),'utf-8')
686 ],dbWhere(['id'=> $id])); 714 ],dbWhere(['id'=> $id]));
687 715
688 // 同步es 716 // 同步es