3

我正在使用以下代码来获取 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"; 
}

?>
4

4 回答 4

3

您还可以使用Gmail 收件箱供稿来获取未读计数。只需将经过身份验证的 GET 请求发送到https://mail.google.com/mail/feed/atom并检查fullcount元素的值。

于 2011-08-14T04:03:10.157 回答
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()));
于 2011-08-09T21:27:17.840 回答
0

我有同样的问题,这很简单。

使用您用于 imap 连接的帐户登录,并在页面顶部谷歌更改您关于多位置访问您的帐户的信息,以便 Goolge 禁止完成该过程并启用您的帐户

你的问题就会解决。

于 2013-05-11T06:53:26.153 回答
0

最简单的方法是向 gmail api 发出经过身份验证的 GET 请求。网址 :: https://www.googleapis.com/gmail/v1/users/me/labels/UNREAD

它将返回一个带有 n 个线程的未读消息计数的 json。countUnread = response["messagesTotal"]。有关更多详细信息,请参阅 oauth 2 Playground。https://developers.google.com/oauthplayground/?code=4/-49VJwh28-eJG7xiK3UoFBchIQrCYRllnOt1TY-w0h4#

于 2015-10-16T08:26:09.907 回答