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.
imap_setflag_full
(PHP 4, PHP 5)
imap_setflag_full — Setzt Nachrichtenflags
Beschreibung
Setzt die mit flag angegebenen Flags bei allen Nachrichten aus der Liste sequence . sequence .
Parameter-Liste
- imap_stream
-
Eine von imap_open() zurückgegebene IMAP-Verbindung.
- sequence
-
Eine Liste von Nachrichtennummern. Sie können Nachrichten mit Komma getrennt aufzählen X,Y oder alle Nachrichten in einem bestimmten Interval mit X:Y auswählen.
- flag
-
Die möglichen Flags die gesetzt werden können sind \\Seen, \\Answered, \\Flagged, \\Deleted und \\Draft wie in » RFC2060 definiert.
- options
-
Eine Bitmaske mit Optionen, zur Zeit wird nur eine Option unterstützt:
- ST_UID - Die Nachrichtenliste sequence enthält UIDs an stelle von Nachrichtennummern
Rückgabewerte
Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.
Beispiele
Beispiel #1 imap_setflag_full() Beispiel
<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password")
or die("can't connect: " . imap_last_error());
$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");
echo gettype($status) . "\n";
echo $status . "\n";
imap_close($mbox);
?>
imap_setflag_full
16-Jan-2003 10:54
25-Apr-2002 05:36
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.
31-Jan-2002 03:29
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!
14-Jan-2002 03:48
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
21-Dec-2000 02:14
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.
13-Oct-2000 09:51
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.
14-Jan-2000 07:04
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.
