|
imap_setflag_full
Sets flags on messages
(PHP 4, PHP 5)
Example 1064. imap_setflag_full() example<?php Code Examples / Notes » imap_setflag_fullphp
Use the imap_clearflag_full function if you want to unset the \Seen flag. http://www.php.net/manual/en/function.imap-clearflag-full.php calmdown
The imap_setflag_full-function works with pop3 as long as the connection is NOT closed. if you make imap_setflag_full($mbox, imap_uid($mbox, 0), "\\Seen \\Flagged", ST_UID); print_r( imap_headerinfo($mbox, 0) ); you see the flags set, but if you call the box again with another script, the flags are empty again. I tried this on a WinNT (*ugly*) with IIS 4.0 and a running POP3-server with PHP 4.3. ajcartmell
Spent ages trying to get this to work, then eventually remembered I had opened the mailbox READONLY - obviously you need write permission for setting flags!
death
Indeed POP3 does not support flags that indicate the "newness" of a message. There are other ways to work around this problem, though. For one, I have seen mail delivery systems that will add a header field Status: to indicate its status (see RFC2076). Another way most email clients and mail fetching programs seem to use is to keep a local list of UID's of messages that are downloaded. Upon fetching mail, the UID's of the messages can be checked against this list to see if it was already downloaded. POP3 supports a command UIDL to get a list of all UID's, but I doubt the IMAP lib uses this command. The only thing I know of that will thrash this work-around is the use of multiple mail clients. If another mail client fetches mail from the server, the first client has no way of knowing it has been downloaded.
msh
In reply to: todsah@arise.nl 13-Oct-2000 06:51 The pop3 does indeed support the deleted flag - I have been working with the IMAP functions connection to a POP3 server this past week and lucky me it works. simoned
I've finally managed to get some action out of this function. Here is some code that might work help some people out: $headers = imap_headers($link); for($x=0; $x < count($headers); $x++) { $id = substr($headers[$x],5,4); imap_setflag_full($link,imap_uid($link,$id),'\\SEEN',SE_UID); } Good luck. todsah
According to the rfc, pop3 does not have support for these flags, except perhaps for the deleted flag. I haven't tried if the delete flag works on pop3 or not.
|
Change Languageimap_8bit imap_alerts imap_append imap_base64 imap_binary imap_body imap_bodystruct imap_check imap_clearflag_full imap_close imap_createmailbox imap_delete imap_deletemailbox imap_errors imap_expunge imap_fetch_overview imap_fetchbody imap_fetchheader imap_fetchstructure imap_get_quota imap_get_quotaroot imap_getacl imap_getmailboxes imap_getsubscribed imap_header imap_headerinfo imap_headers imap_last_error imap_list imap_listmailbox imap_listscan imap_listsubscribed imap_lsub imap_mail_compose imap_mail_copy imap_mail_move imap_mail imap_mailboxmsginfo imap_mime_header_decode imap_msgno imap_num_msg imap_num_recent imap_open imap_ping imap_qprint imap_renamemailbox imap_reopen imap_rfc822_parse_adrlist imap_rfc822_parse_headers imap_rfc822_write_address imap_savebody imap_scanmailbox imap_search imap_set_quota imap_setacl imap_setflag_full imap_sort imap_status imap_subscribe imap_thread imap_timeout imap_uid imap_undelete imap_unsubscribe imap_utf7_decode imap_utf7_encode imap_utf8 |