PHP - imap 计数看不见的电子邮件总是给出“1”作为结果
PHP - imap count unseen emails gives always '1' as result
尝试计算我的电子邮箱中未看到的电子邮件,我的脚本会进行计数,但是,当没有未看到的电子邮件时,结果始终为 1 而不是 0。知道为什么吗?
这里是我到目前为止的代码。
php:
$hostname = '{imap.example.com:993/imap/ssl}INBOX';
$username = 'myemail@example.co.uk';
$password = 'mypass';
$imap = imap_open($hostname, $username, $password) or die("imap connection error");
$result = imap_search($imap, 'UNSEEN');
$new_inbox_msg = count($result);
echo $new_inbox_msg
imap_search()
return是一个数组,不是数字,根据documentation。
所以您需要:
$result = imap_search($imap, 'UNSEEN');
echo count($result);
OK,不好意思,文档是小姐自己解读的。因此,这里是对您的问题的解释:该函数确实 return 一个数组, 但是 一个数组,每个搜索属性保存一个结果(计数)您移交。因为您只指定了一个属性 ('UNSEEN'),所以您 总是 得到数组中的一个元素。 That 元素值是匹配该搜索条件的消息数。
因此正确的用法应该是:
$result = imap_search($imap, 'UNSEEN');
if (is_array($result) && isset($result[0])) {
echo count($result[0]);
} else {
echo "Failed to query number of messages\n";
}
尝试计算我的电子邮箱中未看到的电子邮件,我的脚本会进行计数,但是,当没有未看到的电子邮件时,结果始终为 1 而不是 0。知道为什么吗?
这里是我到目前为止的代码。
php:
$hostname = '{imap.example.com:993/imap/ssl}INBOX';
$username = 'myemail@example.co.uk';
$password = 'mypass';
$imap = imap_open($hostname, $username, $password) or die("imap connection error");
$result = imap_search($imap, 'UNSEEN');
$new_inbox_msg = count($result);
echo $new_inbox_msg
imap_search()
return是一个数组,不是数字,根据documentation。
所以您需要:
$result = imap_search($imap, 'UNSEEN');
echo count($result);
OK,不好意思,文档是小姐自己解读的。因此,这里是对您的问题的解释:该函数确实 return 一个数组, 但是 一个数组,每个搜索属性保存一个结果(计数)您移交。因为您只指定了一个属性 ('UNSEEN'),所以您 总是 得到数组中的一个元素。 That 元素值是匹配该搜索条件的消息数。
因此正确的用法应该是:
$result = imap_search($imap, 'UNSEEN');
if (is_array($result) && isset($result[0])) {
echo count($result[0]);
} else {
echo "Failed to query number of messages\n";
}