©
本文档使用
php.cn手册 发布
(PHP 4, PHP 5, PHP 7)
imap_list — Read the list of mailboxes
$imap_stream
, string $ref
, string $pattern
)Read the list of mailboxes.
imap_stream
由 imap_open() 返回的 IMAP 流。
ref
ref
should normally be just the server
specification as described in imap_open() .
pattern
指定在邮箱层级的何处开始查找。
在组成 pattern
的字符中可使用两个特殊字符:
'*' 和 '%'。
'*' 是指返回所有邮箱目录. 如果将 '*' 作为
pattern
参数时, 则会返回整个邮箱层级结构。
'%' 是指只返回当前级次。
'%' 作为 pattern
参数则只会返回顶层邮箱;
'~/mail/%' 用于 UW_IMAPD
则会返回名为 ~/mail 的目录, 但不包含其子目录。
Returns an array containing the names of the mailboxes.
Example #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 );
?>
[#1] jemore at free dot fr [2014-03-29 14:02:20]
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);
?>
[#2] c6h1206free at gmail dot com [2008-09-16 12:00:13]
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.
[#3] kevin at metalaxe dot com [2007-06-05 02:13:13]
if there is an error imap_list returns FALSE not an empty array (as expected by docs)