作者 邓超

xxx

@@ -581,6 +581,23 @@ class Home extends Base { @@ -581,6 +581,23 @@ class Home extends Base {
581 } 581 }
582 582
583 583
  584 + /**
  585 + * 执行清空邮件操作
  586 + * @throws \Lib\Err
  587 + * @author:dc
  588 + * @time 2024/3/14 14:18
  589 + */
  590 + public function expunge(){
  591 + $email = $this->getEmail();
  592 + $mailInstance = new Mail($email['email'],base64_decode($email['password']),$email['imap']);
  593 + if($mailInstance->expunge()){
  594 + app()->_json([]);
  595 + }
  596 +
  597 + app()->e('执行失败');
  598 + }
  599 +
  600 +
584 601
585 602
586 /** 603 /**
@@ -555,6 +555,24 @@ class Imap { @@ -555,6 +555,24 @@ class Imap {
555 } 555 }
556 556
557 /** 557 /**
  558 + * 清除 已标记为删除的邮件 不可逆
  559 + * @return bool
  560 + * @throws \Exception
  561 + * @author:dc
  562 + * @time 2024/3/14 14:12
  563 + */
  564 + public function expunge(){
  565 +
  566 + $res = $this->request("EXPUNGE");
  567 +
  568 + if ($res[0] == 'ok'){
  569 + return true;
  570 + }
  571 +
  572 + throw new \Exception(end($res[1]));
  573 + }
  574 +
  575 + /**
558 * 删除邮件 576 * 删除邮件
559 * @param array $uids 577 * @param array $uids
560 * @author:dc 578 * @author:dc
@@ -595,6 +595,15 @@ class Mail { @@ -595,6 +595,15 @@ class Mail {
595 595
596 } 596 }
597 597
  598 + /**
  599 + * 清空标记为已删除的邮件,不可还原邮件
  600 + * @author:dc
  601 + * @time 2024/3/14 14:11
  602 + */
  603 + public function expunge(){
  604 + return $this->client->expunge();
  605 + }
  606 +
598 607
599 // /** 608 // /**
600 // * 删除 609 // * 删除
@@ -38,6 +38,8 @@ return [ @@ -38,6 +38,8 @@ return [
38 'move' => [\Controller\Home::class, 'move'], 38 'move' => [\Controller\Home::class, 'move'],
39 // 复制邮件 39 // 复制邮件
40 'copy' => [\Controller\Home::class, 'copy'], 40 'copy' => [\Controller\Home::class, 'copy'],
  41 + // 清除邮件
  42 + 'expunge' => [\Controller\Home::class, 'expunge'],
41 // 检查邮箱状态 43 // 检查邮箱状态
42 'check' => [\Controller\Home::class, 'check'], 44 'check' => [\Controller\Home::class, 'check'],
43 45