Нет, вы не можете. (Трудно поверить, правда?)
PHP использует библиотеку 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;
OR
нет в этом списке. Таким образом, хотя c-клиент поддерживает OR
в его структурах SEARCHPGM
, он не анализирует OR
в устаревшей функции mail_criteria
.
И PHP по-прежнему использует mail_criteria
для анализа поисковых запросов . В 2011 году. Таким образом, пока либо библиотека c-client не устареет mail_criteria
и не сделает ее совместимой с IMAP4, либо PHP не создаст собственный анализатор поиска IMAP, вы будете зависеть от того, что поддерживает IMAP2. Что не включает OR
.