Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7">

imap_getmailboxes

(PHP 3>= 3.0.12, PHP 4 )

imap_getmailboxes --  Liefert detailierte Informationen über eine Auswahl von Postfächern

Beschreibung

array imap_getmailboxes ( int imap_stream, string ref, string pat)

imap_getmailboxes() liefert ein Array zurück, das für jedes gefundene Postfach ein Objekt mit de Attributen name, delimiter und attributes enthält. name enthält dabei den vollständigen Pfadnamen des Postfachs, delimiter das verwendete Trennzeichen zwischen Postfach-Ebenen, und attributes besteht aus einer Bitmaske, die einzelne Eigenschaften des Postfachs beschreibt:

  • LATT_NOINFERIORS - es existieren keine weiteren Postfächer unterhalb dieses Postfachs

  • LATT_NOSELECT - Dieses "Postfach" ist nur ein Behälter für weitere Postfächer.

    Es kann selbst keine Nachrichten enthalten und somit auch nicht geöffnet werden.

  • LATT_MARKED - Dieses Postfach wurde markiert (nur bei UW-IMAPD).

  • LATT_UNMARKED - Dieses Postfach wurde nicht markiert (nur bei UW-IMAPD).

Namen von Postfächern, die Zeichen außerhalb des druckbaren ASCII-Bereiches enthalten, können mit Hilfe der Funktion imap_utf7_decode() dekodiert werden.

ref sollte normalerweise nur die Spezifikation des Servers in der in imap_open() beschriebenen Form enthalten. Über pat kann ein Startpunkt innerhalb der Postfach-Hierachie vorgegeben werden. Wünschen Sie die Ausgabe aller Postfächer, so übergeben Sie als pat '*'.

Die Zeichen '*' und '%' haben innerhalb von pattern eine besondere Bedeutung:

  • '*' - entspricht beliebig vielen Zeichen (incl. des Trennzeichens zw. Postfach-Namen)

  • '%' - entspricht beliebig vielen Zeichen innerhalb eines Postfach-Namens

So liefert "*" alle verfügbaren Postfächer auf dem Server, "INBOX/*" dementsprechend alle persönlichen Postfächer des aktuellen Benutzers. "%" dagegen liefert nur die Toplevel-Postfächer des Servers, "INBOX/%" dementsprechend nur die Toplevel-Postfächer des aktuellen Benutzers. Ein '%' am Ende von pattern entspricht zusätzlich auch allen Zeichenfolgen, die mit dem Trennzeichen beginnen.

Beispiel 1. imap_getmailboxes() Beispiel

$mbox = imap_open ("{your.imap.host}", "username", "password", OP_HALFOPEN)
    || die ("can't connect: " . imap_last_error());

$list = imap_getmailboxes ($mbox, "{your.imap.host}", "*");
if (is_array ($list)) {
    reset ($list);
    while (list( $key, $val) = each ($list)) {
        print "($key) ";
        print imap_utf7_decode ($val->name) . ",";
        print "'" . $val->delimiter . "',";
        print $val->attributes . "<br>\n";
    }
} else {
    print "imap_getmailboxes failed: " . imap_last_error() . "\n";
}
imap_close ($mbox);