我正在努力得到不。来自 gmail 帐户的最近未读邮件。为此,我在 Ubuntu 系统中安装了 IMAP 并尝试了一些 PHP iMAP 功能。
这是我到目前为止所尝试过的。
/* connect to gmail */
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = '[email protected]';
$password = 'user_password';
/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
现在我说出我所有的尝试。
注意 - 我已经通过向测试电子邮件 ID 发送新邮件来尝试每次尝试
Attempt_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的输出是“错误返回”;
Attempt_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);
这里的输出是“Recent:0”,而我已向此 ID 发送了 2 封新邮件
Attempt_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:使用 imap_search() 再次使用参数 NEW
$recent_emails = imap_search($inbox,'NEW');
if ($recent_emails)
echo count($recent_emails);
else
echo "false return";
imap_close($inbox);
输出-错误返回
那么我哪里错了?
如何获取最近未读电子邮件的数量?