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 — Marque le fichier pour l'effacement, dans la boîte aux lettres courante
   Marque les messages message_nums pour l'effacement.
   L'effacement réel n'interviendra que lors de l'appel de la fonction
   imap_expunge() ou de imap_close()
   avec le paramètre optionnel CL_EXPUNGE.
  
imapUne instance de IMAP\Connection.
message_nums
       Une chaîne de caractères représentant un ou plusieurs messages dans un style de
       format d'une séquence IMAP4 ("n",
       "n:m", ou une combinaison de ceci,
       délimité par des virgules).
      
flags
       Vous pouvez le définir à FT_UID
       qui demande à la fonction de traiter l'argument
       message_nums comme un UID.
      
   Retourne toujours true.
  
   Lance une exception ValueError si le paramètre flags est invalide.
  
| Version | Description | 
|---|---|
| 8.1.0 | La paramètre imapattend désormais une instance de
  IMAP\Connection ; auparavant, une resourceimapétait attendue. | 
| 8.0.0 | Une exception ValueError est désormais lancée
       pour des valeurs de paramètre flagsinvalides. Auparavant,
       un avertissement était émis et la fonction retournaitfalse. | 
Exemple #1 Exemple avec imap_delete()
<?php
$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
    or die("Connexion impossible : " . imap_last_error());
$check = imap_mailboxmsginfo($mbox);
echo "Nombre de messages avant effacement : " . $check->Nmsgs . "<br />\n";
imap_delete($mbox, 1);
$check = imap_mailboxmsginfo($mbox);
echo "Nombre de messages après effacement : " . $check->Nmsgs . "<br />\n";
imap_expunge($mbox);
$check = imap_mailboxmsginfo($mbox);
echo "Nombre de messages après imap_expunge : " . $check->Nmsgs . "<br />\n";
imap_close($mbox);
?>Note:
Les boîtes aux lettres IMAP n'ont pas les flags de leurs messages de sauvegardés entre les connexions, aussi la fonction imap_expunge() doit être appelée pendant la même connexion pour que les messages marquées pour effacement soient réellement purgés.
