站長資訊網
        最全最豐富的資訊網站

        詳解使用php-imap查詢操作郵件收件箱

        本篇文章帶大家介紹使用php-imap查詢操作郵件收件箱。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

        最近在業務場景里有接收解析用戶主動發送的郵件,使用php-imap實現了這一需求,記錄一下。

        確定實現方式

        讀取郵件的協議有POP3IMAP兩種,區別:POP3協議允許電子郵件客戶端下載服務器上的郵件,但是在客戶端的操作,不會反饋到服務器上。IMAP提供webmail與電子郵件客戶端之間的雙向通信,客戶端的操作都會反饋到服務器上,對郵件進行的操作,服務器上的郵件也會做相應的動作。

        需求要求處理完用戶的郵件以后,將郵件標記為已處理,因此選用IMAP協議。

        安裝依賴

        本地、服務器php均需要安裝imap擴展。在項目的composer.json中添加php-imap(https://github.com/barbushin/php-imap)擴展如下:

        "require": {   "php-imap/php-imap": "^3.1", },

        配置相關服務

        namespace applibraryservicemail;  use PhpImapExceptionsConnectionException; use PhpImapMailbox;  /**  * 收郵件服務郵件API接口  * Class PlayService  * @package applibraryservice  */ class ImapService {     public $path = '{imap.263.net:993/imap/ssl}INBOX';   // IMAP server and mailbox folder     public $login = 'user@263.cn';         // Username for the before configured mailbox     public $password = 'pwd';                   // Password for the before configured username     public $dir = null;        // Directory, where attachments will be saved (optional)     public $encoding = 'UTF-8';   // Server encoding (optional)      public $mailbox;      public function __construct()     {         $this->mailbox = new Mailbox(             $this->path,             $this->login,             $this->password,             $this->dir,             $this->encoding         );     }

        獲取所有未讀郵件列表

        public function unSeenList() {     try {         $mail_ids = $this->mailbox->searchMailbox('UNSEEN');     } catch (ConnectionException $ex) {         die('IMAP connection failed: ' . $ex->getMessage());     } catch (Exception $ex) {         die('An error occured: ' . $ex->getMessage());     }      // If $mailsIds is empty, no emails could be found     if (!$mail_ids) {         die('Mailbox is empty');     }      try {         $info = $this->mailbox->getMailsInfo($mail_ids);     } catch (ConnectionException $ex) {         echo "IMAP connection failed: " . $ex;         die();     }     return ['ids' => $mail_ids, 'list' => $info]; }

        將某些郵件標記為已讀

        /**  * @param array $mail_ids  * @return mixed  */ public function markRead($mail_ids) {     return $this->mailbox->markMailsAsRead($mail_ids); }

        搜索指定主題的郵件并標記為已讀

        $imap = new ImapService(); $condition = 'UNSEEN  SUBJECT "' . $title . '" SINCE "' . date('Y-m-d', strtotime('-1 days')) . '" FROM ' . $mail; $data['mail'] = $imap->mailbox->searchMailbox($condition); if (!empty($data['mail'])) {     $data['info'] = $imap->mailbox->getMailsInfo($data['mail']);     if ($params['mark'] == 1) {         $data['mark'] = $imap->markRead(array_column($data['info'], 'uid'));     } }

        推薦學習:《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国内精品久久久久伊人av| 91精品成人免费国产片| 四虎影视国产精品亚洲精品hd| 人妻少妇看A偷人无码精品| 午夜精品视频在线| 国产精品jizz视频| 少妇亚洲免费精品| 国产精品免费久久久久久久久| 精品久久8x国产免费观看| 无码欧精品亚洲日韩一区夜夜嗨| 国产高清在线精品一本大道| 国产精品999| 国产亚洲色婷婷久久99精品| 亚洲一区二区三区国产精品| 国产欧美一区二区精品性色99| 欧美精品888| 国产国产精品人在线视| 无码国内精品人妻少妇| 日韩精品一区二区午夜成人版| 国产亚洲精品影视在线产品 | 国产精品综合专区中文字幕免费播放| 2022国内精品免费福利视频| 精品国产粉嫩内射白浆内射双马尾 | 亚洲视频精品在线| 国产亚洲美女精品久久久久狼| 国产精品视频一区二区三区无码| 亚洲国产精品无码专区在线观看| 日韩精品一二三区| 日韩精品一区二区三区中文字幕| 欧美日韩成人精品久久久免费看 | 精品乱码一区二区三区四区| 久久久久久亚洲精品成人| 无码人妻精品一区二区三区久久| 最新精品露脸国产在线| 欧美精品福利视频一区二区三区久久久精品 | 久久97久久97精品免视看秋霞| 国产精品色视频ⅹxxx| 国产一区二区精品久久凹凸| 精品欧美| 亚洲欧美日韩精品久久亚洲区| 亚洲国产精品视频|