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

时间:2011-03-10 18:28:43

标签: php email imap

在浏览代码和搜索文档时,我无法找到任何内容。有没有人能够做到这一点?

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

1 个答案:

答案 0 :(得分:6)

不,你不能。 (很难相信,对吗?)

PHP使用Mark Crispin的c-client库进行IMAP工作。在c-client库中,mail_criteria中有一个不推荐使用的方法mail.c,它将IMAP搜索字符串转换为c-client搜索程序。 mail_criteria has been deprecated for the past 8 years or so and, as such, was never updated to support the IMAP4 search syntax。因此,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;

OR不在该列表中。因此,即使c-client在其OR结构中支持SEARCHPGM,它也不会在已弃用的OR函数中解析mail_criteria

PHP still uses mail_criteria to parse search queries。在2011年。因此,在c-client库取消mail_criteria并使其符合IMAP4或PHP编写自己的IMAP搜索解析器之前,您将无法使用任何支持的IMAP2。 Which doesn't include OR.