• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 详解使用php-imap查询操作邮件收件箱

详解使用php-imap查询操作邮件收件箱

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了php-imap,查询操作邮件,收件箱等相关知识,希望对您有所帮助

本篇文章带大家介绍使用php-imap查询操作邮件收件箱。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

使用php-imap查询操作邮件收件箱

最近在业务场景里有接收解析用户主动发送的邮件,使用php-imap实现了这一需求,记录一下。


确定实现方式

读取邮件的协议有POP3和IMAP两种,区别:POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作,不会反馈到服务器上。IMAP提供webmail与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。

需求要求处理完用户的邮件以后,将邮件标记为已处理,因此选用IMAP协议。


安装依赖

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

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


配置相关服务

namespace app\library\service\mail; use PhpImap\Exceptions\ConnectionException;use PhpImap\Mailbox; /** * 收邮件服务邮件API接口 * Class PlayService * @package app\library\service */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'));    }}


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解使用php-imap查询操作邮件收件箱

相关文章

  • PhotoShop制作逼真的墙面粉笔字效果
  • Centos7下宝塔面板PHP7.3怎么安装sqlsrv扩展
  • wordpress前台空白问题的解决方法
  • Photoshop制作炫彩效果的霓虹字教程
  • ThinkPHP5实现图片水印平铺效果
  • PhotoShop打造腐蚀锈迹钢铁文字特效教程
  • 提高网站排名的三个方法
  • PhotoShop制作魔幻霓虹火焰字效果的教程
  • PHP生成中间带LOGO图像的二维码
  • 一分钟学会Docker安装phpmyadmin

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 利用promise及参数解构封装ajax请求的方法
    • 如何增加外链,增加外链方法汇总
    • PHP怎么进行登入操作和注销登录(实例演示)
    • Photoshop绘制透明效果的立体心形
    • RESETful API接口设计规范
    • Photoshop制作苹果语音助理Siri图标动画教程
    • 详解vue2项目优雅封装echarts地图的方法
    • 一招教你使用Node.js中iis部署运行node(附代码)
    • 那些你不知道的Photoshop冷知识技巧
    • PHP怎么只保留汉字

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有