列出邮箱中的所有文件夹

一旦你连接到你的邮箱,你会想看看里面。第一个有用的命令是 imap_list 。第一个参数是从 imap_open 获取的资源,第二个参数是你的邮箱字符串,第三个参数是模糊搜索字符串(*用于匹配任何模式)。

$folders = imap_list($mailbox, "{imap.example.com:993/imap/tls/secure}", "*");
if ($folders === false) {
    echo "Failed to list folders in mailbox";
} else {
    print_r($folders);
}

输出应该与此类似

Array
(
    [0] => {imap.example.com:993/imap/tls/secure}INBOX
    [1] => {imap.example.com:993/imap/tls/secure}INBOX.Sent
    [2] => {imap.example.com:993/imap/tls/secure}INBOX.Drafts
    [3] => {imap.example.com:993/imap/tls/secure}INBOX.Junk
    [4] => {imap.example.com:993/imap/tls/secure}INBOX.Trash
)

你可以使用第三个参数来过滤这些结果,如下所示:

$folders = imap_list($mailbox, "{imap.example.com:993/imap/tls/secure}", "*.Sent");

现在结果只包含名称中带有 .Sent 的条目:

Array
(
    [0] => {imap.example.com:993/imap/tls/secure}INBOX.Sent
)

注意 :使用*作为模糊搜索将递归返回所有匹配。如果你使用%,它将仅返回指定的当前文件夹中的匹配项。