• « imap_scanmailbox
  • imap_set_quota »
  • PHP Manual
  • Функции IMAP
  • Получает сообщения, удовлетворяющие заданным критериям

imap_search

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_search — Получает сообщения, удовлетворяющие заданным критериям

Описание

imap_search(
    IMAP\Connection $imap,
    string $criteria,
    int $flags = SE_FREE,
    string $charset = ""
): array|false

Эта функция производит поиск в текущем почтовом ящике открытом в потоке IMAP.

К примеру, чтобы найти все неотвеченные сообщения посланные от мамы (Mom), нужно будет использовать "UNANSWERED FROM mom". Поиск регистронезависимый. Приведённый список критериев извлечён из исходных кодов UW c-client и может быть неполным или не совсем точным (дополнительно смотрите » RFC1176, секция "tag SEARCH search_criteria").

Список параметров

imap

Экземпляр класса IMAP\Connection.

criteria

Строка, разделённая пробелами, в которой допустимо использовать следующие ключевые слова. Любые аргументы, состоящие из нескольких слов, должны быть заключены в двойные кавычки (например FROM "joey smith"). Результат будет совпадать со всеми заданными в параметре criteria критериями.

  • ALL - возвращать все сообщения, соответствующие остальным критериям
  • ANSWERED - сообщения с выставленным флагом \\ANSWERED
  • BCC "string" - сообщения в поле Bcc: которых присутствует "string"
  • BEFORE "date" - сообщения с Date: до "date"
  • BODY "string" - сообщения содержащие "string" в теле
  • CC "string" - сообщения в поле Cc: которых присутствует "string"
  • DELETED - удалённые сообщения
  • FLAGGED - сообщения с установленным флагом \\FLAGGED (иногда называют "Срочное" или "Важное")
  • FROM "string" - сообщения в поле From: которых присутствует "string"
  • KEYWORD "string" - сообщения с ключевым словом "string"
  • NEW - новые сообщения
  • OLD - старые сообщения
  • ON "date" - сообщения с Date: равным "date"
  • RECENT - означает сообщения с выставленным флагом \\RECENT
  • SEEN - прочтённые сообщения (установлен флаг \\SEEN)
  • SINCE "date" - сообщения с Date: после "date"
  • SUBJECT "string" - сообщения в поле Subject: которых присутствует "string"
  • TEXT "string" - сообщения с текстом "string"
  • TO "string" - сообщения в поле To: которых присутствует "string"
  • UNANSWERED - неотвеченные сообщения
  • UNDELETED - не удалённые сообщения
  • UNFLAGGED - сообщения без установленных флагов
  • UNKEYWORD "string" - сообщения, не имеющие ключевого слова "string"
  • UNSEEN - непрочитанные сообщения

flags

Корректные значения flags - это SE_UID, что приведёт к тому, что в возвращённом массиве вместо номеров сообщений будут содержаться их UID.

charset

Кодировка MIME, в которой будет происходить поиск.

Возвращаемые значения

Возвращает номера сообщений или их UID.

Возвращает false, если сообщения не найдены, либо критерии указанные в criteria некорректны.

Список изменений

Версия Описание
8.1.0 Параметр imap теперь ожидает экземпляр класса IMAP\Connection; раньше параметр ждал ресурс (resource) imap.

Примеры

Пример #1 Пример использования imap_search()

<?php
$imap
= imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);

$some = imap_search($imap, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID);
$msgnos = imap_search($imap, 'ALL');
$uids = imap_search($imap, 'ALL', SE_UID);

print_r($some);
print_r($msgnos);
print_r($uids);
?>

Вывод приведённого примера будет похож на:

Array
(
    [0] => 4
    [1] => 6
    [2] => 11
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
Array
(
    [0] => 1
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 11
    [5] => 12
)

Смотрите также

  • imap_listscan() - Получает список почтовых ящиков, имена которых содержат заданную строку