PHP imap_search INBOX / SENT项目

时间:2012-09-07 05:28:14

标签: php codeigniter email imap

我需要使用某些条件搜索InboxSent Items

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

  1. INBOX - FROMCC字段
  2. 中搜索
  3. Sent Items - To字段中搜索

    $ result = imap_search($ conn,'From“user@example.com”to“user@example.com”');

  4. 我尝试imap_search,但它没有使用多个条件。

    同样可以同时搜索INBOXSent Items

    提前致谢。

1 个答案:

答案 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不会使用多个条件

相关问题