I am trying to read mail from an Imap server (Gmail). I would check if there is new mail (invisible) and check it as you can see. I wrote this code, but
imap_setflag_full
doesn't seem to work. If I have new mail, the script cannot set the SEEN flag, and it repeats that there is always one invisible letter.
$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"; }
Thank you very much.
source share