Définissez un e-mail comme on le VOIT sur le serveur IMAP
Je suis en train de lire le courrier d'un Serveur Imap (Gmail). Je voudrais vérifier si il y a des nouveaux messages (invisible) et vérifier que vu.
J'ai écrit ce code mais
imap_setflag_full
semble ne pas fonctionner.
Si j'ai un nouveau mail le script est incapable de mettre le VU de drapeau de l'écho m'qu'il y a toujours un invisible 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";
}
Je vous remercie beaucoup.
OriginalL'auteur michele | 2011-07-20
Vous devez vous connecter pour publier un commentaire.
Je pense que le problème est avec le "1" vous avez codé en dur. J'ai remplacé le "1" avec:
et il semble fonctionner. Lors de l'utilisation de ST_UID, cela signifie en fait d'un ID, et pas un numéro de séquence.
OriginalL'auteur marcelog
Je ne sais pas comment la réponse ci-dessus fonctionne, et les gens sont le vote de cette réponse.
J'ai gâché ma journée entière sur cette réponse.
Enfin je obtenir la véritable solution. C'est le travail. Je suis juste mettre e-mails non lus pour lire des e-mails.
OriginalL'auteur Adnan Ahmad