PHP 7.4.25 Released!

imap_list

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

imap_listLiefert die Liste der Postfächer

Beschreibung

imap_list(IMAP\Connection $imap, string $reference, string $pattern): array|false

Gibt die Liste aller Pöstfächer zurück.

Parameter-Liste

imap

Eine IMAP\Connection-Instanz.

reference

Die Angabe des Servers in der in imap_open() beschriebenen Form.

Warnung

Die Übergabe von nicht vertrauenswürdigen Daten an diesen Parameter ist unsicher, falls imap.enable_insecure_rsh nicht deaktiviert ist.

pattern

Gibt an, wo in der Postfach-Hierarchie mit der Suche begonnen werden soll.

Es gibt zwei Sonderzeichen, die man als Teil von pattern verwenden kann: '*' und '%'. '*' heißt, dass alle Postfächer zurückgegeben werden sollen. Wenn man pattern als '*' übergibt, so erhält man eine Liste der vollständigen Postfach-Hierarchie. '%' heißt, dass nur die aktuelle Stufe zurückgegeben wird. '%' als Wert des pattern Parameters wird nur die Postfächer auf höchster Stufe zurückgeben. '~/mail/%' unter UW_IMAPD wird jedes Postfach innerhalb des Verzeichnisses ~/mail zurückgeben, aber keine innerhalb von dessen Unterverzeichnissen.

Rückgabewerte

Gibt ein Array mit den Namen der gefundenen Postfächer zurück oder false im Fehlerfall.

Changelog

Version Beschreibung
8.1.0 Der Parameter imap erwartet nun eine IMAP\Connection-Instanz; vorher wurde eine Ressource erwartet.

Beispiele

Beispiel #1 imap_list()-Beispiel

<?php
$mbox 
imap_open("{imap.example.org}""username""password"OP_HALFOPEN)
      or die(
"Kann keine Verbindung aufbauen: " 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 schlug fehl: " imap_last_error() . "\n";
}

imap_close($mbox);
?>

Siehe auch

add a note add a note

User Contributed Notes 5 notes

up
2
Anonymous
2 years ago
use
echo mb_convert_encoding($val, "utf-8", "UTF7-IMAP");
for cyrrilic folder names
up
2
jemore at free dot fr
7 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
maxime dot marais+php at gmail dot com
2 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
13 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
14 years ago
if there is an error imap_list returns FALSE not an empty array (as expected by docs)
To Top