IMAPサーバ(Gmail)からメールを読み込もうとしています。新しいメール(見えない)があるかどうかを確認し、確認します。 私はこのコードを書いたが、IMAPサーバでSEENとしてメールを設定する
imap_setflag_full
は動作していないようだ。 新しいメールがある場合、スクリプトはSEENフラグを設定することができず、常に1つの目に見えないメールがあることを伝えます。
$mbox=imap_open("{imap.gmail.com:993/ssl/novalidate-cert}" , $this->username, $this->password);
if ($mbox)
{ echo "Connected\n<br><br>";
} else { exit ("Can't connect: " . imap_last_error() ."\n"); echo "FAIL!\n"; };
if ($hdr = imap_check($mbox)) {
$msgCount = $hdr->Nmsgs;
echo "There are ".$msgCount." mail";
} else {
echo "Failed to get mail";
}
$result = imap_search($mbox, 'UNSEEN');
echo "<br>Result: ";
print_r($result);
if($result==false)
echo "No email";
else{
echo "you have mail";
echo("<br>now I set the Seen flag for this mail");
rsort($result);
$status = imap_setflag_full($mbox, "1", "\\Seen \\Flagged", ST_UID);
}
echo"<br><br>";
$result = imap_search($mbox, 'UNSEEN');
echo "<br>Result: ";
print_r($result);
if($result==false)
echo "no mail";
else{
echo "there are still";
}
ありがとうございました。
シーケンス番号の代わりにUIDを返すには、** SE_UID **オプションを使用します。 – Matthew