(PHP 4, PHP 5, PHP 7)
imap_getmailboxes — Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них
$imap_stream
, string $ref
, string $pattern
) : arrayПолучает информацию о почтовых ящиков.
imap_stream
Поток IMAP, полученный из imap_open().
ref
ref
обычно должен быть только специфицикацией сервера, как описано в imap_open()
Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.
pattern
Определяет начало поиска в иерархии почтовых ящиков.
Есть два специальных символа, которые можно использовать при передаче
как часть pattern
:
'*' и '%'.
'*' возвращает все почтовые ящики. Если вы передадите
pattern
как '*', то получите полный список иерархии почтовых ящиков.
'%' вернет только текущий уровень.
'%', переданный как параметр pattern
, вернет почтовые ящики
только на самом верхнем уровне; '~/mail/%'
на UW_IMAPD вернет все ящики в директории ~/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).
Пример #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);
?>