php array imap_scan ( resource imap_stream , string mailbox , string $query )
参数说明:
imap_stream:必需。由 imap_open() 返回的 IMAP 流。
mailbox:必需。要搜索的邮箱的名称。
-
query:必需。搜索字段。可以使用以下通配符:
- *:匹配零个或多个字符。
- %:匹配零个或多个字符(与 * 相同)。
- ?:匹配一个字符。
返回值:如果成功,该函数返回一个包含邮件序列号或 UID 的数组。如果失败,则返回 false。
示例
以下示例演示了如何使用 imap_scan 函数扫描指定邮箱中的邮件:
php imap_stream = imap_open('{mail.example.com:143}', 'username', 'password'); mailbox = ‘INBOX’; query = 'SUBJECT "Hello World" SINCE "1 January 2021"'; result = imap_scan(imap_stream, mailbox, $query);
if (result) { echo "Found " . count(result) . “ emails matching the query.”; echo “
- ”;
foreach (result as email) {
echo “
- ” . $email . “ ”; } echo “
imap_close($imap_stream);
在上面的示例中,我们打开了一个 IMAP 流,并使用 imap_scan 函数扫描了 INBOX 文件夹中的所有主题为 “Hello World” 的邮件(自 2021 年 1 月 1 日以来)。如果找到了匹配的邮件,则返回邮件的序列号或 UID。
注意事项
在使用 imap_scan 函数时,需要注意以下事项:
- 如果指定的邮箱不存在,则该函数将返回 false。
- 如果没有找到匹配的邮件,则该函数将返回一个空数组。
- 请注意,对于大型邮箱,扫描所有邮件可能需要一些时间。建议使用查询来缩小扫描范围。
- 尽管该函数可以返回邮件的 UID,但建议使用 imap_uid() 函数来获取 UID。
总之,imap_scan 函数是一个非常有用的函数,可以帮助我们快速扫描指定邮箱中的邮件。希望本文能够对您有所帮助!