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/atomfullcountに送信し、要素の値を確認するだけです。

于 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

最も簡単な方法は、gmail API に対して認証済みの GET リクエストを行うことです。URL :: https://www.googleapis.com/gmail/v1/users/me/labels/UNREAD

nスレッドの未読メッセージの数を含むjsonを返します。countUnread = response["messagesTotal"]. 詳細については、oauth 2 プレイグラウンドを参照してください。https://developers.google.com/oauthplayground/?code=4/-49VJwh28-eJG7xiK3UoFBchIQrCYRllnOt1TY-w0h4#

于 2015-10-16T08:26:09.907 に答える
0

私は同じ問題を抱えており、それは非常に簡単です。

imap接続に使用しているアカウントでログインし、ページの上部でGoogleがアカウントのマルチロケーションアクセスについて変更するため、Googleはそのプロセスを完了してアカウントを使用できるようにします

あなたの問題は解決されます。

于 2013-05-11T06:53:26.153 に答える