Читает список почтовых ящиков и возвращает подробную информацию о каждом из них

# imap_getmailboxes

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

imap_getmailboxes — Читает список почтовых ящиков и возвращает подробную информацию о каждом из них

### Описание

function imap_getmailboxes(IMAP\Connection `$imap`, string `$reference`, string `$pattern`): array|false

Функция получает информацию о почтовых ящиках.

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

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

  Обычно значение параметра `reference` должно содержать только спецификацию сервера, как описывает страница функции imap_open().

  Внимание

  Передача в этот параметр непроверенных данных небезопасна, если включили директиву imap.enable_insecure_rsh.

`pattern`
  Определяет начало поиска в иерархии почтовых ящиков. Как часть параметра `pattern` перадают два специальных символа: '`*`' и '`%`'. Символ '`*`' означает возврат всех почтовых ящиков. Если передать параметр `pattern` как '`*`', возвращается полный список иерархии почтовых ящиков. Символ '`%`' означает возврат только текущего уровня. Символ '`%`' как значение параметра `pattern` вернёт почтовые ящики только верхнего уровня; с серверов `UW_IMAPD` значение '`~/mail/%`' вернёт почтовые ящики каталога ~/mail, но не подкаталогов этого каталога.

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

Функция возвращает массив объектов, которые содержат информацию о почтовых ящиках. Каждый объект содержит свойства: `name`, которое указывает полное имя ящика; `delimiter`, которое содержит разделитель для той части иерархии, в которой содержится ящик; и `attributes`. Параметр `Attributes` — битовая маска из следующих констант:

- `LATT_NOINFERIORS` — Ящик не содержит и не может содержать «потомков», то есть содержать вложенные ящики. Вызов функции imap_createmailbox() не будет работать для этого ящика.

- `LATT_NOSELECT` — Это только контейнер, а не почтовый ящик. Его нельзя открыть.

- `LATT_MARKED` — Этот ящик помечен. Означает, что в ящике могут быть новые письма, которые появились с момента последней проверки. Работает не со всеми серверами IMAP.

- `LATT_UNMARKED` — Этот ящик не помечен, то есть в ящике нет новых писем. Если выставлен флаг `MARKED` или `UNMARKED` — считается, что сервер поддерживает этот функционал.

- `LATT_REFERRAL` — Этот контейнер имеет направления (referral) на удалённый почтовый ящик.

- `LATT_HASCHILDREN` — У этого почтового ящика есть выбираемые подчинённые (inferiors).

- `LATT_HASNOCHILDREN` — У этого почтового ящика нет выбираемых подчинённых (inferiors).

Функция возвращает `false`, если возникла ошибка.

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

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

### Примеры

Пример #1 Пример использования функции imap_getmailboxes()

    <?php

    $mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
        or die("Не удалось подключиться: " . imap_last_error())
    ;

    $list = imap_getmailboxes($mbox, "{imap.example.org}", "*");
    if (is_array($list)) {
        foreach ($list as $key => $val) {
            echo "($key) ";
            echo imap_utf7_decode($val->name) . ",";
            echo "'" . $val->delimiter . "',";
            echo $val->attributes . "<br />\n";
        }
    } else {
        echo "вызов imap_getmailboxes завершился с ошибкой: " . imap_last_error() . "\n";
    }

    imap_close($mbox);

    ?>

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

- imap_getsubscribed() - Получает список всех почтовых ящиков, на которые оформлена подписка

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open