PHP workshop for 2 days with Shopware, Sylius, PHPUnit and Codeception in Duisburg

imap_list

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

imap_listRead the list of mailboxes

Descrição

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

Read the list of mailboxes.

Parâmetros

imap

An IMAP\Connection instance.

reference

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

Aviso

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

pattern

Especifica aonde na hierarquia da caixa de mensagens deve começar a procura.

Existem dois caracteres especiais que você pode passar como parte para o pattern: '*' e '%'. '*' significa retornar todas as caixas de mensagens. Se você passar pattern como '*', você terá uma lista de toda a hierarquia da caixa de mensagens. '%' significa retornar o nível atual apenas. '%' como o parâmetro pattern ira retornar apenas as caixar de mensagem do nível superior; '~/mail/%' em UW_IMAPD irá retornar cada caixa de mensagem no diretório ~/mail, mais nenhuma em subpastas deste diretório.

Valor Retornado

Returns an array containing the names of the mailboxes or false in case of failure.

Changelog

Versão Descrição
8.1.0 The imap parameter expects an IMAP\Connection instance now; previously, a resource was expected.

Exemplos

Exemplo #1 imap_list() example

<?php
$mbox 
imap_open("{imap.example.org}""username""password"OP_HALFOPEN)
      or die(
"can't connect: " 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 failed: " imap_last_error() . "\n";
}

imap_close($mbox);
?>

Veja Também

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