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 — Mark a message for deletion from current mailbox
   Marks messages listed in message_nums for deletion.
   Messages marked for deletion will stay in the mailbox until either
   imap_expunge() is called or
   imap_close() is called with the optional parameter
   CL_EXPUNGE.
  
imapПримірник IMAP\Connection.
message_nums
       A string representing one or more messages in IMAP4-style sequence format
       ("n", "n:m", or combination of these
       delimited by commas).
      
flags
       You can set the FT_UID which tells the function
       to treat the message_nums argument as a
       UID.
      
   Завжди повертає true.
  
   Throws a ValueError if flags
   is invalid.
  
| Версія | Опис | 
|---|---|
| 8.1.0 | Тепер параметр imapмає бути примірником
  IMAP\Connection; раніше очікувався дійсний resourceimap. | 
| 8.0.0 | A ValueError is now thrown on invalid flagsparameter values. Previously,
       a warning was emitted and the function returnedfalse. | 
Приклад #1 imap_delete() example
<?php
$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
    or die("Can't connect: " . imap_last_error());
$check = imap_mailboxmsginfo($mbox);
echo "Messages before delete: " . $check->Nmsgs . "<br />\n";
imap_delete($mbox, 1);
$check = imap_mailboxmsginfo($mbox);
echo "Messages after  delete: " . $check->Nmsgs . "<br />\n";
imap_expunge($mbox);
$check = imap_mailboxmsginfo($mbox);
echo "Messages after expunge: " . $check->Nmsgs . "<br />\n";
imap_close($mbox);
?>Зауваження:
IMAP mailboxes may not have their message flags saved between connections, so imap_expunge() should be called during the same connection in order to guarantee that messages marked for deletion will actually be purged.
