imap_list

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

imap_listПрочитать список почтовых ящиков

Описание

imap_list(resource $imap, string $reference, string $pattern): array|false

Читает список почтовых ящиков.

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

imap

Поток IMAP, полученный из imap_open().

reference

В reference, как правило, должна быть указана только спецификация сервера, как описано в imap_open().

Внимание

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

pattern

Определяет начало поиска в иерархии почтовых ящиков.

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

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

Возвращает массив с именами почтовых ящиков или false в случае неудачи.

Примеры

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

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

$list imap_list($mbox"{imap.example.org}""*");
if (
is_array($list)) {
    foreach (
$list as $val) {
        echo 
imap_utf7_decode($val) . "\n";
    }
} else {
    echo 
"вызов imap_list завершился с ошибкой: " imap_last_error() . "\n";
}

imap_close($mbox);
?>

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

  • imap_getmailboxes() - Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них
  • imap_lsub() - Список всех подписанных почтовых ящиков

add a note add a note

User Contributed Notes 5 notes

up
3
jemore at free dot fr
10 years ago
With the values returned from the imap_list function, you can search a message in the folder, but you have to use the imap_reopen function before . Continuing the previous example (from c6h1206free at gmail dot com )

<?php
  $srv
= '{imap.example.com}';
 
$conn = imap_open($srv, 'me', 'mypass');
 
$boxes = imap_list($conn, $srv, '*');
  foreach(
$boxes as $box)
  {
   
imap_reopen($srv, $box);
   
var_dump(imap_search($srv, "ALL"));
  }
 
imap_close($conn);
?>
up
2
Anonymous
5 years ago
use
echo mb_convert_encoding($val, "utf-8", "UTF7-IMAP");
for cyrrilic folder names
up
2
maxime dot marais+php at gmail dot com
5 years ago
Please be aware that if you are trying to list an empty mailbox, imap_list will return FALSE as if there was an error instead of an empty array() as one may expect.

Example:

With a brand new account created on your mail server, with an empty INBOX, you will get:

$list = imap_list( $imap_stream, $ref, "INBOX/*");
var_dump( $list );
// bool(false)
up
1
c6h1206free at gmail dot com
15 years ago
imap_list returns a simple array of strings that look just like the $ref parameter one needs to specify:

<?php

  $srv
= '{imap.example.com}';

 
$conn = imap_open($srv, 'me', 'mypass');

 
$boxes = imap_list($conn, $srv, '*');

 
print_r($boxes);
 
imap_close($conn);
?>

Output:

<pre>
Array
(
    [0] => {imap.example.com}Calendar
    [1] => {imap.example.com}Contacts
    [2] => {imap.example.com}Deleted Items
    [3] => {imap.example.com}Drafts
    [4] => {imap.example.com}Journal
    [5] => {imap.example.com}Junk E-mail
    [6] => {imap.example.com}Notes
    [7] => {imap.example.com}Outbox
    [8] => {imap.example.com}RSS Feeds
    [9] => {imap.example.com}Sent Items 
    [10] => {imap.example.com}Tasks
)
</pre>

These directly fill in the $ref argument for every function that takes one.
up
0
kevin at metalaxe dot com
16 years ago
if there is an error imap_list returns FALSE not an empty array (as expected by docs)
To Top