我使用以下代码来获取Gmail中未读电子邮件的数量。但是,它返回错误:
can't connect: Too many login failures
这里有什么我想念的吗?
(我正在测试的Gmail帐户中启用了IMAP和POP。)
注意:看起来它正在运行(至少对于大多数请求而言)。然而,它花了太长时间 - 也许2到3分钟回来一个数字。有没有办法加快速度?
谢谢!
<?php
$mbox = imap_open ("{imap.gmail.com:993/imap/ssl/novalidate-cert/norsh}Inbox",
"username", "password", OP_READONLY)
or die("can't connect: " . imap_last_error());
$check = imap_mailboxmsginfo($mbox);
if ($check) {
print $check->Unread; //. "/" . $check->Nmsgs;
} else {
print "Failed";
}
?>
答案 0 :(得分:3)
您还可以使用Gmail Inbox Feed获取未读数。
只需向https://mail.google.com/mail/feed/atom发送经过身份验证的GET请求,然后检查fullcount
元素的值。
答案 1 :(得分:0)
尝试输出可能遇到的所有错误:
$mbox = imap_open("{imap.gmail.com:993/imap/ssl/novalidate-cert/norsh}Inbox", "username", "password", OP_READONLY) or die('Cannot connect to Gmail: ' . print_r(imap_errors()));
答案 2 :(得分:0)
我有同样的问题而且非常简单。
使用您用于imap连接的帐户登录,并在页面顶部谷歌改变您关于多帐户访问您的帐户的权利,以便Goolge能够完成该流程并使其能够使用您的帐户
您的问题将得到解决。
答案 3 :(得分:0)
最简单的方法是向gmail api发出经过身份验证的GET请求。 url :: https://www.googleapis.com/gmail/v1/users/me/labels/UNREAD
它将返回一个带有未读消息数n个线程的json。 countUnread = response [&#34; messagesTotal&#34;]。 有关更多详细信息,请参阅oauth 2 playground。 https://developers.google.com/oauthplayground/?code=4/-49VJwh28-eJG7xiK3UoFBchIQrCYRllnOt1TY-w0h4#