Как получить в Gmail непрочитанное количество - PullRequest
3 голосов
/ 10 августа 2011

Я использую следующий код для подсчета непрочитанных писем в Gmail. Однако возвращается ошибка:

can't connect: Too many login failures

Есть ли что-то, что я здесь скучаю?

(IMAP и POP включены в учетной записи Gmail, которую я тестирую.)


ПРИМЕЧАНИЕ: Похоже, что это работает (по крайней мере, для большинства запросов). Однако это займет слишком много времени - возможно, 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 ]

3 голосов
/ 14 августа 2011

Вы также можете использовать Gmail Inbox Feed , чтобы получить количество непрочитанных сообщений. Просто отправьте аутентифицированный запрос GET на https://mail.google.com/mail/feed/atom и проверьте значение элемента fullcount.

0 голосов
/ 16 октября 2015

Самый простой способ - это выполнить аутентифицированный GET-запрос к gmail api. URL :: https://www.googleapis.com/gmail/v1/users/me/labels/UNREAD

Возвращает json с количеством непрочитанных сообщений в n темах. countUnread = response ["messagesTotal"]. Для более подробной информации, обратитесь к детской площадке oauth 2. https://developers.google.com/oauthplayground/?code=4/-49VJwh28-eJG7xiK3UoFBchIQrCYRllnOt1TY-w0h4#

0 голосов
/ 11 мая 2013

У меня та же проблема, и это очень просто.

Войдите в свою учетную запись, которую вы используете для подключения к imap, и в верхней части страницы Google сообщит вам о множественном доступе к вашей учетной записи, чтобы Goolge privent завершил этот процесс и дал возможность использовать вашу учетную запись

и ваша проблема будет решена.

0 голосов
/ 10 августа 2011

Попробуйте вывести все ошибки, которые могли встретиться:

$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()));
...