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 条注释

9
Brandon Kirsch at perceptionilluminates dot com
11 年前
如果您不使用 imap_errors() 清除错误堆栈,则脚本执行结束时保留的任何错误都将作为 PHP 通知引发。
2
Jeremy Glover
17 年前
调用 imap_close($mbox) 时,将为 IMAP 函数中发生的每个错误生成通知。要抑制这些错误消息(包括“邮箱为空”,这不是真正的错误),只需调用 imap_errors(),然后调用 imap_close($mbox)。
1
Luke Madhanga
10 年前
对于好奇的人来说,此函数将返回一个线性字符串数组,而不是像 error_get_last 那样返回一个包含不同内容的关联数组。

例如:

[0 => '[TRYCREATE] No folder {imap.gmail.com} (Failure)']
2
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