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 — Устанавливает флаги на сообщения
   Сообщает серверу, что надо добавить флаг flag к набору
   флагов, заданным в sequence сообщениям.
  
imapЭкземпляр класса IMAP\Connection.
sequence
       Последовательность номеров сообщений.Вы можете перечислить несколько
       сообщений, используя как разделитель запятую (X,Y), или
       задать интервал сообщений с помощью двоеточия X:Y
      
flag
       Флаги, которые можно установить: \Seen,
       \Answered, \Flagged,
       \Deleted и \Draft, как определено
       в » RFC2060.
      
optionsБитовая маска, которая может принимать только одно значение:
ST_UID - последовательность сообщений задана
          не их номерами, а с помощью UID
         
        
   Функция возвращает логическое значение true.
  
   Выбрасывает исключение ValueError,
   если значение параметра options недопустимо.
  
| Версия | Описание | 
|---|---|
| 8.1.0 | Параметр imapтеперь ожидает экземпляр класса IMAP\Connection;
  раньше параметр ждал ресурс (resource)imap. | 
| 8.0.0 | Теперь выбрасывается исключение ValueError
       при недопустимых значениях параметра options.
       Ранее возникало предупреждение и функция возвращала логическое значениеfalse. | 
Пример #1 Пример использования imap_setflag_full()
<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password")
     or die("не удалось подключиться: " . 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