• 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查询操作邮件收件箱

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了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查询操作邮件收件箱

相关文章

  • 2022-04-29WordPress程序打开速度慢的三种解决方法
  • 2022-04-29JS去除腾讯爱奇艺优酷视频右上角LOGO
  • 2022-04-29巧用PS蒙版扣去黑色背景火焰文字
  • 2022-04-29Photoshop制作海底以透明泡泡组成的艺术字
  • 2022-04-29Photoshop打造快速坠入水的文字特效
  • 2022-04-29PHP高并发实例详解之商品库存超卖并发测试
  • 2022-04-29如何利用百度外链工具建立有效外链
  • 2022-04-29Thinkphp学习之路由定义 伪静态规则(总结分享)
  • 2022-04-29Photoshop设计3D效果的月牙状LOGO
  • 2022-04-29Photoshop合成抽象风格的人物插画教程

文章分类

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

最近更新的内容

    • Photoshop金属质感的艺术字教程
    • Photoshop制作金属嵌钻图案效果的字效
    • 关于最新版ThinkORM对于时间字段的调整
    • 在CSS中怎么给按钮添加背景图片(详解及实例)
    • Redis中热点Key是怎么产生的?如何解决?
    • PHPCMS V9静态化HTML生成设置及URL规则优化
    • PHP替换Word中变量并导出PDF图片的实现方法
    • 建网站用哪里的服务器比较好?哪里的空间便宜
    • Photoshop绘制立体质感的网页开关按钮
    • ThinkPHP5通过ajax插入图片并实时显示(完整代码)

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

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