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!(PHP 4, PHP 5, PHP 7, PHP 8)
imap_setflag_full — Setzt Nachrichtenflags
   Setzt die mit flag angegebenen Flags bei allen
   Nachrichten aus der Liste sequence.
  
imapEine IMAP\Connection-Instanz.
sequence
       Eine Liste von Nachrichtennummern. Sie können die gewünschten
       Nachrichten mit Komma getrennt aufzählen (X,Y) oder
       alle Nachrichten in einem bestimmten Intervall 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.
      
optionsEine Bitmaske mit Optionen, die zurzeit wird nur eine Option unterstützt:
ST_UID - Die Nachrichtenliste
          sequence enthält UIDs anstelle von
          Nachrichtennummern.
         
        
   Gibt immer true zurück.
  
   Wenn options ungültig ist, wird ein
   ValueError geworfen.
  
| Version | Beschreibung | 
|---|---|
| 8.1.0 | Der Parameter imaperwartet nun eine
  IMAP\Connection-Instanz; vorher wurde eine gültigeimap-Ressource erwartet. | 
| 8.0.0 | Bei ungültigen Parameterwerten von optionswird
       nun ein ValueError geworfen; zuvor wurde eine
       Warnung ausgegeben und die Funktion gabfalsezurück. | 
Beispiel #1 imap_setflag_full()-Beispiel
<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password")
     or die("Kann keine Verbindung aufbauen: " . imap_last_error());
$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");
echo gettype($status) . "\n";
echo $status . "\n";
imap_close($mbox);
?>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!Where possible I would avoid using POP3 accounts. My host allowed me to upgrade to IMAP and it is so much easier. I think the only way to accurately create any form of mail client with POP3 is to download the messages into an SQL database which is a big task to start with, considering the IMAP standards have the functionality we need built in.
I experimented with flag setting in POP3 and it seems they do not stick at all, and it is almost impossible to retrieve the number of unread messages (ie. the Seen / Unseen thing does not work)
Converted to IMAP and it's working - the majority of the functions in this section seem to be IMAP focussed and WILL NOT generally work with POP3