use
echo mb_convert_encoding($val, "utf-8", "UTF7-IMAP");
for cyrrilic folder names
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_list — Lit la liste des boîtes aux lettres
Lit la liste des boîtes aux lettres.
imap
Une instance de IMAP\Connection.
reference
reference
ne devrait être que le serveur
sous la forme décrite dans imap_open()
Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.
pattern
Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.
Il y a deux caractères
spéciaux que vous pouvez utiliser dans pattern
:
'*
' et '%
'.
'*
' signifie : toutes les boîtes aux lettres. Si vous passez
pattern
comme '*
', vous obtiendrez
la liste complète des boîtes aux lettres de la hiérarchie.
'%
' signifie qu'on ne s'intéresse qu'au niveau courant.
'%
' passé à pattern
ne retournera
que les boîtes aux lettres de niveau supérieur; '~/mail/%
'
sous UW_IMAPD
retournera toutes les boîtes aux lettres du
dossier ~/mail directory, mais pas leurs enfants.
Retourne un tableau contenant les noms des boîtes aux lettres, ou false
si une erreur survient.
Version | Description |
---|---|
8.1.0 |
La paramètre imap attend désormais une instance de
IMAP\Connection ; auparavant, une ressource imap était attendue.
|
Exemple #1 Exemple avec imap_list()
<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
or die("Connexion impossible : " . 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 a échoué : " . imap_last_error() . "\n";
}
imap_close($mbox);
?>
use
echo mb_convert_encoding($val, "utf-8", "UTF7-IMAP");
for cyrrilic folder names
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)
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.
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);
?>
if there is an error imap_list returns FALSE not an empty array (as expected by docs)