在探索代码和搜索文档时,我找不到任何东西.有没有人能够做到这一点?
不,你不能.(很难相信,对吧?)
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支持OR其SEARCHPGM结构,它也不会OR在已弃用的mail_criteria函数中进行解析.
而PHP仍然采用mail_criteria解析搜索查询.在2011年.因此,在c-client库取消弃用mail_criteria并使其符合IMAP4或PHP编写自己的IMAP搜索解析器之前,您将无法使用任何支持的IMAP2. 其中不包括OR.