<?php
$connection = imap_open(...);
$messageUid = 123;
imap_clearflag_full($connection, $messageUid, '\\Seen', ST_UID);
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_clearflag_full — Clears flags on messages
$imap
, string $sequence
, string $flag
, int $options
= 0
) : bool
This function causes a store to delete the specified
flag
to the flags set for the
messages in the specified sequence
.
imap
由 imap_open() 返回的 IMAP 流。
sequence
A sequence of message numbers. You can enumerate desired messages
with the X,Y
syntax, or retrieve all messages
within an interval with the X:Y
syntax
flag
The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", and "\\Draft" (as defined by » RFC2060)
options
options
are a bit mask and may contain
the single option:
ST_UID
- The sequence argument contains UIDs
instead of sequence numbers
成功时返回 true
, 或者在失败时返回 false
。
<?php
$connection = imap_open(...);
$messageUid = 123;
imap_clearflag_full($connection, $messageUid, '\\Seen', ST_UID);
I got a note that:
if u want to set a mail to "//Unseen", which not exists,
do it like this:
imap_clearflag_full($your_imap_connection,
$number_of_message,"//Seen");
but, remember to do
imap_close($imap, CL_EXPUNGE);
@ the END! so that it will be confirmed!
Cheers,
Nohado
Remember to specify your flags like '\\Seen' rather than "\\Seen".
Of course, flags are an IMAP feature, not a POP feature.
Resetting \\Seen works from PHP 4.3 works fine on the modern mail servers I've tested.
imap_clearflag_full() and imap_setflag_full() seem to only change messageflags permanently with IMAP connections, not with POP3 connections.
This function seems not to save the \\Seen flag permanently.
Testet on Win NT IIS 4.0 PHP 4.3 and imap-mail-server