我需要使用某些条件搜索Inbox
和Sent Items
。
假设我需要过滤的电子邮件ID为user@example.com
INBOX
- FROM
,CC
字段在Sent Items
- To
字段中搜索
$ result = imap_search($ conn,'From“user@example.com”to“user@example.com”');
我尝试imap_search
,但它没有使用多个条件。
同样可以同时搜索INBOX
和Sent Items
?
提前致谢。
答案 0 :(得分:2)
不,不可能
PHP使用Mark Crispin的c-client库进行IMAP工作。在c-client库中,mail.c中有一个不推荐使用的方法mail_criteria,它将IMAP搜索字符串转换为c-client搜索程序。 mail_criteria在过去8年左右已被弃用,因此从未更新以支持IMAP4搜索语法。因此,在IMAP2中不存在的搜索术语(如OR)在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;
OR不在该列表中。因此,即使c-client在其SEARCHPGM结构中支持OR,它也不会在已弃用的mail_criteria函数中解析OR。
PHP仍然使用mail_criteria来解析搜索查询。在2011年。因此,在c-client库取消对mail_criteria的弃用并使其符合IMAP4或PHP编写自己的IMAP搜索解析器之前,您将无法使用任何支持的IMAP2。其中不包括OR。
imap_search不会使用多个条件