PHP imap_搜索收件箱/已发送邮件

PHP imap_搜索收件箱/已发送邮件,php,codeigniter,email,imap,Php,Codeigniter,Email,Imap,我需要用一些条件搜索收件箱和已发送邮件 假设我需要过滤的电子邮件Id是user@example.com 在收件箱-中从,CC字段中搜索 在已发送项目-至字段中搜索 $result=imap_搜索($conn,'From'user@example.com“到”user@example.com"'); 我尝试了imap\u搜索,但它不适用于多个条件 是否可以同时搜索收件箱和已发送邮件 提前谢谢。不,不可能 PHP使用MarkCrispin的c-client库进行IMAP工作。在c-client库中,

我需要用一些条件搜索
收件箱
已发送邮件

假设我需要过滤的电子邮件Id是
user@example.com

  • 收件箱
    -
    中从
    CC
    字段中搜索
  • 已发送项目
    -
    字段中搜索

    $result=imap_搜索($conn,'From'user@example.com“到”user@example.com"');

  • 我尝试了
    imap\u搜索
    ,但它不适用于多个条件

    是否可以同时搜索
    收件箱
    已发送邮件

    提前谢谢。

    不,不可能

    PHP使用MarkCrispin的c-client库进行IMAP工作。在c-client库中,mail.c中有一个已弃用的方法mail_criteria,它将IMAP搜索字符串转换为c-client搜索程序。在过去8年左右的时间里,mail_标准一直被弃用,因此从未更新以支持IMAP4搜索语法。因此,IMAP2中不存在的或之类的搜索词从未在mail_criteria函数中得到支持。以下是它支持的以“O”开头的所有术语:

    case 'O':                 /* possible OLD, ON */
        if (!strcmp (criterion+1,"LD")) f = pgm->old = T;
        else if (!strcmp (criterion+1,"N"))
          f = mail_criteria_date (&pgm->on,&r);
        break;
    
    或者不在名单上。因此,即使c-client在其SEARCHPGM结构中支持或,它也不会在不推荐使用的mail_criteria函数中解析或

    PHP仍然使用mail_标准来解析搜索查询。2011年。因此,除非c-client库取消了mail_标准并使其符合IMAP4,或者PHP编写了自己的IMAP搜索解析器,否则您只能使用IMAP2支持的任何东西。其中不包括或


    imap_搜索将无法使用多个条件

    使用循环。搜索它们并将结果放入数组为什么将所有内容放入查询中,为收件箱放置结果,并将其他文件夹的链接放入结果中。当用户单击Outbox等文件夹时,触发该文件夹的查询并显示结果:)