<?php // 实例一个配置 $config = (new \Lib\Imap\ImapConfig()) // 邮箱 ->setEmail('zhlong0616@163.com') // 密码 ->setPassword(base64_decode('VEVKSVdPTUJQS09TSFJHSg==')) // 必须是 协议+域名+端口 ->setHost('ssl://imap.163.com:993'); // 获取一个imap连接 必须传入 \Lib\Imap\ImapConfig类 // 返回的是 Lib\Imap\Imap 类 $imap = \Lib\Imap\ImapPool::get($config); // 登录 必须先登录 $login = $imap->login(); if($login->isOk()){// 登录成功 /******************** start 文件夹 ************************/ // 获取文件夹对象 $folders = $imap->getFolders(); // 获取 所有目录 foreach ($folders->all() as $folder){ $folder->getParseFolder(); // 获取解析过后的目录名称 $folder->folder; // 获取没有解析的目录名称 } // 获取顶级目录 foreach ($folders->getTopFolder() as $folder){ $childs = $folder->getChild(); // 获取 子级目录 foreach ($childs as $child){ $child->getChild(); } } // 创建一级文件夹 $imap->folder('你好',false)->create(); // 创建 二级文件夹 $imap->folder('你好/大家好',false)->create(); // 删除 你好 文件夹 $imap->folder('你好',false)->delete(); // 把 你好 改成 我好 $imap->folder('你好',false)->rename('我好',false); /******************** end 文件夹 ************************/ /************************ start 获取某个文件夹下面的邮件 *******************************/ // uid标记为已读 $imap->folder('INBOX')->msg()->uid(1)->seen(); $imap->folder('INBOX')->msg()->uid(1)->flagged(); // 星标 // 选择文件夹 预备读取 使用分页 查询 $msgs = $imap->folder('INBOX')->msg()->forPage()->get(); // 1.使用foreach foreach ($msgs as $msg){ /** @var \Lib\Imap\Parse\MessageItem $msg **/ } // 2.使用 each $msgs->each(function (\Lib\Imap\Parse\MessageItem $msg){ $msg->msgno;// 邮件编号 $msg->uid;// 邮件唯一id $msg->size;// 邮件大小 $msg->date;// 邮件内部时间,也就是服务器收到邮件的时间 $msg->flags;// 邮件标签 已读,已回,星标,删除,草稿 最近 $msg->isAnswered();//已回 $msg->isDeleted();//删除 $msg->isDraft();//草稿 $msg->isFlagged();//星标 $msg->isRecent();//最近 $msg->isSeen();// 已读 $msg->seen(); //已读 $msg->unseen();// 未读 $msg->flagged();// 星标 $msg->unflagged();// 取消星标 /** 头部信息 @see \Lib\Imap\Parse\Header */ $msg->header->getSubject();// 已解析的主题 $msg->header->getFrom();// 已解析的发件人 $msg->header->getTo();// 已解析的收件人 // 获取某个字段 $msg->header->get('subject'); // html内容 $msg->body->getHtml(); $msg->body->getHtmlAndImg(); // 纯文本内容 $msg->body->getText(); // 获取附件 foreach ($msg->body->getAttachment() as $attachment){ // 存起来 $attachment->save('/xxx/xxx/xxx.png'); // 原始 文件名称 $attachment->getFilename(); // 后缀 $attachment->getExtension(); } $msg->move('回收站',false); }); // 搜索邮箱 $msg = $imap->folder('INBOX')->msg()->search( // 搜索未读 并且 主题有 你好 的 (new \Lib\Imap\ImapSearch()) ->seen(false) ->subject('你好') )->get(); /*******************************************************/ }else{ // 登录失败 获取错误消息 $login->getMessage() throw new Exception($login->getMessage()); }