6.3.5 Commande DELETE
Arguments : nom de boîte aux lettres
Réponses : Réponse non étiquetée OPTIONNELLE : LIST
Résultat :
- OK - delete terminée
- NO - échec de delete : impossible de supprimer la boîte aux lettres avec ce nom
- BAD - commande inconnue ou arguments invalides
La commande DELETE supprime définitivement la boîte aux lettres avec le nom donné. Une réponse OK étiquetée n'est renvoyée que si la boîte aux lettres a été supprimée. C'est une erreur de tenter de supprimer INBOX ou un nom de boîte aux lettres qui n'existe pas.
La commande DELETE ne doit pas (ne doit pas) supprimer les noms hiérarchiques inférieurs. Par exemple, si une boîte aux lettres "foo" a un inférieur "foo.bar" (en supposant que "." est le caractère délimiteur de hiérarchie), la suppression de "foo" ne doit pas (ne doit pas) supprimer "foo.bar". C'est une erreur de tenter de supprimer un nom qui a des noms hiérarchiques inférieurs et qui a également l'attribut de nom de boîte aux lettres \Noselect (voir la description de la réponse LIST (Section 7.3.1) pour plus de détails).
Il est autorisé de supprimer un nom qui a des noms hiérarchiques inférieurs et n'a pas l'attribut de nom de boîte aux lettres \Noselect. Si l'implémentation du serveur ne permet pas de supprimer le nom alors que des noms hiérarchiques inférieurs existent, alors elle devrait (devrait) interdire la commande DELETE en renvoyant une réponse NO étiquetée. La réponse NO devrait (devrait) inclure le code de réponse HASCHILDREN. Alternativement, le serveur peut (peut) autoriser la commande DELETE, mais il définit l'attribut de nom de boîte aux lettres \Noselect pour ce nom.
Si le serveur renvoie une réponse OK, tous les messages dans cette boîte aux lettres sont supprimés par la commande DELETE.
La valeur de l'identifiant unique le plus élevé utilisé de la boîte aux lettres supprimée doit (doit) être préservée afin qu'une nouvelle boîte aux lettres créée avec le même nom ne réutilise pas les identifiants de l'incarnation précédente, sauf si la nouvelle incarnation a une valeur de validité d'identifiant unique différente. Voir la description de la commande UID dans la Section 6.4.9 pour plus de détails.
Si le serveur décide de convertir (normaliser) le nom de la boîte aux lettres, il devrait (devrait) renvoyer une LIST non étiquetée avec l'attribut "\NonExistent" et l'élément de données étendu OLDNAME, la valeur OLDNAME étant le nom de boîte aux lettres fourni et le paramètre name étant le nom de boîte aux lettres normalisé. (Voir la Section 6.3.9.7 pour plus de détails.)
Les boîtes aux lettres supprimées dans une session IMAP peuvent (peuvent) être annoncées aux autres sessions IMAP en utilisant une réponse LIST non sollicitée, contenant l'attribut "\NonExistent".
Exemple :
C: A682 LIST "" *
S: * LIST () "/" blurdybloop
S: * LIST (\Noselect) "/" foo
S: * LIST () "/" foo/bar
S: A682 OK LIST completed
C: A683 DELETE blurdybloop
S: A683 OK DELETE completed
C: A684 DELETE foo
S: A684 NO Name "foo" has inferior hierarchical names
C: A685 DELETE foo/bar
S: A685 OK DELETE Completed
C: A686 LIST "" *
S: * LIST (\Noselect) "/" foo
S: A686 OK LIST completed
C: A687 DELETE foo
S: A687 OK DELETE Completed
Exemple :
C: A82 LIST "" *
S: * LIST () "." blurdybloop
S: * LIST () "." foo
S: * LIST () "." foo.bar
S: A82 OK LIST completed
C: A83 DELETE blurdybloop
S: A83 OK DELETE completed
C: A84 DELETE foo
S: A84 OK DELETE Completed
C: A85 LIST "" *
S: * LIST () "." foo.bar
S: A85 OK LIST completed
C: A86 LIST "" %
S: * LIST (\Noselect) "." foo
S: A86 OK LIST completed