the function is using the message number (and not the uid !)
$uid = $mail->uid; 
$msgno = $mail->msgno;
if you want to use the uid, simply option value
imap_delete($mbox, $uid, FT_UID);(PHP 4, PHP 5, PHP 7, PHP 8)
imap_delete — Помечает сообщение для удаления
   Помечает сообщения, перечисленные в message_nums для
   удаления. Помеченные сообщения будут оставаться в ящике пока не будет вызвана
   функция imap_expunge(), либо
   imap_close() с установленным параметром
   CL_EXPUNGE.
  
imapЭкземпляр класса IMAP\Connection.
message_nums
       Строка (string), состоящая из одного или нескольких сообщений
       в формате последовательности в стиле IMAP4 ("n", "n:m" или их комбинация,
       разделённая запятыми).
      
flags
       Можно задать как FT_UID, тогда функция будет
       ожидать в параметре message_nums не номер сообщения,
       а UID.
      
   Функция возвращает логическое значение true.
  
   Выбрасывает исключение ValueError,
   если значение параметра flags недопустимо.
  
| Версия | Описание | 
|---|---|
| 8.1.0 | Параметр imapтеперь ожидает экземпляр класса IMAP\Connection;
  раньше параметр ждал ресурс (resource)imap. | 
| 8.0.0 | Теперь выбрасывается исключение ValueError,
       при недопустимых значениях параметра flags.
       Ранее возникало предупреждение и функция возвращала логическое значениеfalse. | 
Пример #1 Пример использования imap_delete()
<?php
$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
    or die("Не удалось подключиться: " . imap_last_error());
$check = imap_mailboxmsginfo($mbox);
echo "Сообщения до отметки для удаления: " . $check->Nmsgs . "<br />\n";
imap_delete($mbox, 1);
$check = imap_mailboxmsginfo($mbox);
echo "Сообщения после отметки для удаления: " . $check->Nmsgs . "<br />\n";
imap_expunge($mbox);
$check = imap_mailboxmsginfo($mbox);
echo "Сообщения после удаления: " . $check->Nmsgs . "<br />\n";
imap_close($mbox);
?>Замечание:
Ящики IMAP могут не сохранять флаги между соединениями, следовательно если вы действительно хотите удалить помеченные сообщения, то необходимо вызывать imap_expunge() в том же соединении, в котором флаги устанавливались.
