函式名: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 伺服器的連線。