私の必要性: GMail アカウント (または他のメール サービス) で未読メールの数を取得したいのですが、それを取得した後、ローカル PHP サーバーの Web ページに表示する必要があります。そのため、PHP などのスクリプト言語が必要です。しかし、私は多くの例を試しましたが、どれもうまくいかないようです。したがって、基本的に私が欲しいのは、GMail アカウントにアクセスして、未読メールの数を Web ページに返すことができる PHP スクリプトです。
このスクリプトを無駄に試しましたが、Web ページに常に「エラー」が表示され続けます。
<?php
function CountUnreadMail($host, $login, $passwd) {
$mbox = imap_open($host, $login, $passwd);
$count = 0;
if (!$mbox) {
echo "Error";
} else {
$headers = imap_headers($mbox);
foreach ($headers as $mail) {
$flags = substr($mail, 0, 4);
$isunr = (strpos($flags, "U") !== false);
if ($isunr)
$count++;
}
}
imap_close($mbox);
return $count;
}
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'username';
$password = 'password';
$count = CountUnreadMail($hostname, $username, $password);
?>
Chrisが助けてくれたので、このスクリプトを試してみましたが、空白のページしか表示されませんでした。これは、私が無駄に試した別のスクリプトです。
<?php
function mailCount($host, $login, $passwd) {
$mbox = imap_open($host, $login, $passwd);
$mail = '';
if($mail = imap_check($mbox)) {
return $mail->Nmsgs;
}
}
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'phpimap123'; //GMail username
$password = 'phptesting'; //Password
$count = mailCount($hostname, $username, $password);
echo $count;
?
PS:テスト目的でのみGMail アカウントを作成しました。
MacBook Air で Mac OS X Lion を実行しています。PHPを有効にして実行しています.MAMPもあり、実行しています.