函数名:imap_listscan()
适用版本:PHP 4.0.7及以上版本
用法:该函数用于在指定的邮箱中搜索符合特定条件的邮件列表。它返回一个包含匹配邮件的索引数组。
语法:array imap_listscan ( resource $imap_stream , string $ref , string $mailbox , string $pattern , string $content )
参数:
- $imap_stream:必需。一个有效的 IMAP 流资源,通过 imap_open() 函数打开。
- $ref:必需。参考字符串,通常是邮箱的路径名。
- $mailbox:必需。邮箱名称,可以是相对于参考字符串的相对路径或绝对路径。
- $pattern:必需。搜索模式,可以是字符串或字符串数组,支持的通配符有 *(匹配任意字符)和 %(匹配任意字符,不包括目录分隔符)。
- $content:可选。搜索内容,可以是字符串或字符串数组,用于匹配邮件的正文。
返回值:返回一个包含匹配的邮件索引的数组,如果没有匹配的邮件则返回空数组。
示例:
// 连接到 IMAP 服务器
$imap_stream = imap_open("{imap.example.com:993/imap/ssl}", "username", "password");
// 搜索匹配的邮件
$mails = imap_listscan($imap_stream, "", "INBOX", "*@example.com", "Hello");
// 输出匹配的邮件索引
foreach ($mails as $index) {
echo "匹配的邮件索引:" . $index . "<br>";
}
// 关闭 IMAP 连接
imap_close($imap_stream);
上述示例中,首先通过 imap_open() 函数连接到 IMAP 服务器,然后使用 imap_listscan() 函数在 INBOX 邮箱中搜索符合条件的邮件。搜索条件为邮件地址以 "@example.com" 结尾,并且正文包含 "Hello"。最后,通过 foreach 循环遍历匹配的邮件索引,并输出到浏览器。最后,使用 imap_close() 函数关闭与 IMAP 服务器的连接。