你能从PHP IMAP库中使用IMAP_SEARCH中的条件吗?

Bob*_*zza 0 php email imap

在探索代码和搜索文档时,我找不到任何东西.有没有人能够做到这一点?

http://php.net/manual/en/function.imap-search.php

dka*_*arp 6

不,你不能.(很难相信,对吧?)

PHP使用Mark Crispin的c-client库进行IMAP工作.在c-client库中,有一种不推荐使用的方法mail_criteria,mail.c即将IMAP搜索字符串转换为c-client搜索程序. mail_criteria 已被弃用过去8年左右,因此从未更新以支持IMAP4搜索语法.因此OR,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;
Run Code Online (Sandbox Code Playgroud)

OR不在那个名单上.因此,即使c-client支持ORSEARCHPGM结构,它也不会OR在已弃用的mail_criteria函数中进行解析.

PHP仍然采用mail_criteria解析搜索查询.在2011年.因此,在c-client库取消弃用mail_criteria并使其符合IMAP4或PHP编写自己的IMAP搜索解析器之前,您将无法使用任何支持的IMAP2. 其中不包括OR.