PHP Conference Japan 2024

imap_errors

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_errors返回所有已發生的 IMAP 錯誤

說明

imap_errors(): 陣列|false

取得此頁面請求期間或自錯誤堆疊重置以來發生的所有 IMAP 錯誤(如有)。

呼叫 imap_errors() 後,錯誤堆疊隨後會被清除。

參數

此函式沒有參數。

返回值

此函式返回自上次呼叫 imap_errors() 或頁面開始以來產生的所有 IMAP 錯誤訊息的陣列。如果沒有可用的錯誤訊息,則返回 false

參見

新增註記

使用者貢獻的註記 4 則註記

Brandon Kirsch at perceptionilluminates dot com
11 年前
如果您沒有使用 imap_errors() 清除錯誤堆疊,任何在腳本執行結束時仍存在的錯誤都將以 PHP 通知的形式提出。
Jeremy Glover
17 年前
呼叫 imap_close($mbox) 時,會針對 imap 函式中發生的每個錯誤產生通知。要抑制這些錯誤訊息(包括「信箱為空」,這並不是真正的錯誤),只需呼叫 imap_errors(),然後再呼叫 imap_close($mbox)。
Luke Madhanga
10 年前
對於好奇的人來說,這個函式會返回一個字串的線性陣列,而不是像 error_get_last 那樣返回一個包含不同內容的關聯陣列。

例如:

[0 => '[TRYCREATE] 無資料夾 {imap.gmail.com} (失敗)']
olliejones at gmail dot com
1 年前
這會在呼叫 imap_open() 之後立即產生字串「信箱為空」。這不是錯誤。這表示像這樣不足以判斷開啟失敗是由於密碼、主機名稱錯誤等原因所致。以下程式碼:

$imap = @imap_open( $mailbox, $user, $pass);
$errors = @imap_errors();
if ( $errors ) {
echo '登入失敗: ' . implode ('; ', $errors );
}

可能會輸出「登入失敗:信箱為空」,這很荒謬。

應該改為檢查 imap_open() 的返回值。

$imap = @imap_open( $mailbox, $user, $pass);
if ( ! $imap ) {
$errors = @imap_errors();
echo '登入失敗: ' . implode ('; ', $errors );
}
To Top