Please wait while we load your page...


PHP Manual :: imap_getmailboxes

imap_getacl || imap_getsubscribed || IMAP Functions || PHP Manual

(PHP 4, PHP 5, PHP 7)

imap_getmailboxesRead the list of mailboxes, returning detailed information on each one


array imap_getmailboxes ( resource $imap_stream , string $ref , string $pattern )

Gets information on the mailboxes.



An IMAP stream returned by imap_open().


ref should normally be just the server specification as described in imap_open()


Specifies where in the mailbox hierarchy to start searching.

There are two special characters you can pass as part of the pattern: '*' and '%'. '*' means to return all mailboxes. If you pass pattern as '*', you will get a list of the entire mailbox hierarchy. '%' means to return the current level only. '%' as the pattern parameter will return only the top level mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.

Return Values

Returns an array of objects containing mailbox information. Each object has the attributes name, specifying the full name of the mailbox; delimiter, which is the hierarchy delimiter for the part of the hierarchy this mailbox is in; and attributes. Attributes is a bitmask that can be tested against:

  • LATT_NOINFERIORS - This mailbox contains, and may not contain any "children" (there are no mailboxes below this one). Calling imap_createmailbox() will not work on this mailbox.

  • LATT_NOSELECT - This is only a container, not a mailbox - you cannot open it.

  • LATT_MARKED - This mailbox is marked. This means that it may contain new messages since the last time it was checked. Not provided by all IMAP servers.

  • LATT_UNMARKED - This mailbox is not marked, does not contain new messages. If either MARKED or UNMARKED is provided, you can assume the IMAP server supports this feature for this mailbox.


Example #1 imap_getmailboxes() example

      or die(
"can't connect: " imap_last_error());

$list imap_getmailboxes($mbox"{}""*");
if (
is_array($list)) {
    foreach (
$list as $key => $val) {
"($key) ";
imap_utf7_decode($val->name) . ",";
"'" $val->delimiter "',";
$val->attributes "<br />\n";
} else {
"imap_getmailboxes failed: " imap_last_error() . "\n";


See Also

imap_getacl || imap_getsubscribed || IMAP Functions || PHP Manual
Live Chat Not Available