我试图拒绝。来自 gmail 帐户的最近未读邮件。为此,我在我的 Ubuntu 系统中安装了 IMAP 并尝试了一些 PHP iMAP 功能。这是我到目前为止所尝试的。
/* connect to gmail */
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'user@gmail.com';
$password = 'user_password';
/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
现在我陈述我所有的尝试。注意 - 我已经通过向测试电子邮件 ID 发送新邮件来尝试每次尝试
尝试_1:使用 imap_search()
$recent_emails = imap_search($inbox,'RECENT');
if ($recent_emails)
echo count($recent_emails);
else
echo "false return";
imap_close($inbox);
现在 Attempt_1 的输出是“假返回”;
尝试_2:使用 imap_mailboxmsginfo()
$check = imap_mailboxmsginfo($inbox);
if ($check)
echo "Recent: " . $check->Recent . "<br />\n" ;
else
echo "imap_check() failed: " . imap_last_error() . "<br />\n";
imap_close($inbox);
这里的输出是最近的:0,而我已经向这个 id 发送了 2 封新邮件
尝试_3:使用 imap_status()
$status = imap_status($inbox, $hostname, SA_ALL);
if ($status)
echo "Recent: " . $status->recent . "<br />\n";
else
echo "imap_status failed: " . imap_last_error() . "\n";
//输出最近:0
Attempt_4:再次使用带有参数 NEW 的使用 imap_search()
$recent_emails = imap_search($inbox,'NEW');
if ($recent_emails)
echo count($recent_emails);
else
echo "false return";
imap_close($inbox);
输出 - 错误返回
那么我错在哪里?如何获取最近的未读邮件计数?