I am trying to read mail from an Imap Server (Gmail). I would check if there are new mail (unseen) and check it as seen.I wrote this code but
imap_setflag_full
seems to not work. If I have a new mail the script is unable to put the SEEN flag and it echo me that there is always one unseen 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"; }
Thank you so much.