imap_list

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

imap_list读取邮箱列表

描述

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

读取邮箱列表。

参数

imap

一个 IMAP\Connection 实例。

reference

reference 通常应该只是服务器规范,如 imap_open() 中所述。

警告

除非 imap.enable_insecure_rsh 被禁用,否则向此参数传递不受信任的数据是不安全的

pattern

指定在邮箱层次结构中的哪个位置开始搜索。

您可以传递两个特殊字符作为 pattern 的一部分:'*' 和 '%'。'*' 表示返回所有邮箱。如果您将 pattern 传递为 '*',您将获得整个邮箱层次结构的列表。'%' 表示仅返回当前级别。'%' 作为 pattern 参数将仅返回顶层邮箱;'~/mail/%' 在 UW_IMAPD 上将返回 ~/mail 目录中的所有邮箱,但不会返回该目录子文件夹中的任何邮箱。

返回值

返回包含邮箱名称的数组,或者在失败的情况下返回 false

变更日志

版本 描述
8.1.0 imap 参数现在需要一个 IMAP\Connection 实例;以前,需要一个有效的 imap 资源

示例

示例 #1 imap_list() 示例

<?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);
?>

参见

添加注释

用户贡献的注释 5 notes

maxime dot marais+php at gmail dot com
5 年前
请注意,如果您尝试列出空邮箱,imap_list 将返回 FALSE,就像出现错误一样,而不是返回空数组(),就像人们预期的那样。

示例

在您的邮件服务器上创建一个全新的帐户,并使用一个空的 INBOX,您将获得

$list = imap_list( $imap_stream, $ref, "INBOX/*");
var_dump( $list );
// bool(false)
匿名
5 年前
使用
echo mb_convert_encoding($val, "utf-8", "UTF7-IMAP");
用于西里尔字母文件夹名称
c6h1206free at gmail dot com
15 年前
imap_list 返回一个简单的字符串数组,这些字符串看起来就像您需要指定的 $ref 参数一样

<?php

$srv
= '{imap.example.com}';

$conn = imap_open($srv, 'me', 'mypass');

$boxes = imap_list($conn, $srv, '*');

print_r($boxes);
imap_close($conn);
?>

输出

<pre>
数组
(
[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>

这些直接填充了每个需要一个的函数的 $ref 参数。
kevin at metalaxe dot com
17 年前
如果出现错误,imap_list 返回 FALSE,而不是空数组(如文档所述)。
jemore at free dot fr
10 年前
使用从 imap_list 函数返回的值,您可以在文件夹中搜索消息,但是您必须在之前使用 imap_reopen 函数。继续前面的示例(来自 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);
?>
To Top