函数名:imap_scanmailbox()
适用版本:PHP 4, PHP 5, PHP 7
用法:imap_scanmailbox() 函数用于扫描指定邮箱中的邮件,并返回邮件的信息。
语法:array imap_scanmailbox ( resource $imap_stream , string $ref , string $pattern [, int $options = 0 [, string &$return ]])
参数:
- $imap_stream:一个有效的 IMAP 流。
- $ref:邮箱的参考路径,例如 INBOX。
- $pattern:用于匹配邮件的模式字符串,可以使用通配符 * 和 ?。
- $options:可选参数,用于指定其他选项,例如 IMAP::FT_UID(返回 UID 而不是序列号)。
- $return:可选参数,用于存储扫描结果的字符串。
返回值:返回一个包含邮件信息的数组,或者在失败时返回 false。
示例:
// 连接到 IMAP 服务器
$imap_stream = imap_open("{imap.example.com:993/imap/ssl}INBOX", "username", "password");
// 扫描邮箱中所有邮件
$mailbox = imap_scanmailbox($imap_stream, "INBOX", "*");
if ($mailbox) {
// 输出邮件的数量和信息
echo "There are " . count($mailbox) . " emails in the mailbox.\n";
foreach ($mailbox as $mail) {
echo "Subject: " . $mail->subject . "\n";
echo "From: " . $mail->fromaddress . "\n";
echo "Date: " . $mail->date . "\n";
echo "---------------------------------\n";
}
} else {
echo "Failed to scan mailbox.\n";
}
// 关闭 IMAP 连接
imap_close($imap_stream);
注意事项:
- 在使用 imap_scanmailbox() 函数之前,需要先通过 imap_open() 函数连接到 IMAP 服务器。
- $ref 参数可以是邮箱的完整路径,例如 "{imap.example.com:143}INBOX"。
- $pattern 参数可以使用通配符 * 和 ?,例如 "INBOX.*" 会匹配以 INBOX 开头的所有邮箱。
- 如果指定了 $return 参数,扫描结果将存储在该字符串中,而不是返回一个数组。