Einrichten eines E-Mail-GESEHEN auf dem IMAP-server
Ich versuche, das Lesen von E-Mails von einem Imap-Server (Gmail). Ich würde prüfen, ob es neue E-mail (ungesehen), und überprüfen Sie es gesehen.
Ich schrieb diesen code, aber
imap_setflag_full
scheint nicht zu funktionieren.
Wenn ich eine neue E-mail-Skript ist nicht in der Lage zu setzen der Flagge GESEHEN und es echo mich, dass es immer einen unsichtbaren E-mail.
$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";
}
Danke Ihnen so sehr.
InformationsquelleAutor michele | 2011-07-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das problem ist mit der "1" Sie sind hardcoded. Ich ersetzte die "1" mit:
und es scheint zu funktionieren. Bei der Verwendung von ST_UID, das bedeutet eigentlich eine ID und nicht eine Sequenz-Nummer.
InformationsquelleAutor marcelog
Ich weiß nicht, wie obige Antwort ist die Arbeit und die Menschen Stimmen, die Antwort.
Ich habe verschwendet meine ganzen Tag auf die Antwort.
Endlich habe ich die richtige Lösung. Das ist eine Arbeit. Ich bin nur die Einstellung ungelesene E-Mails Lesen E-Mails.
InformationsquelleAutor Adnan Ahmad