Aller au contenu principal

6.3.4 Commande CREATE

Arguments : nom de boîte aux lettres

Réponses : Réponse non étiquetée OPTIONNELLE : LIST

Résultat :

  • OK - create terminée
  • NO - échec de create : impossible de créer une boîte aux lettres avec ce nom
  • BAD - commande inconnue ou arguments invalides

La commande CREATE crée une boîte aux lettres avec le nom donné. Une réponse OK n'est renvoyée que si une nouvelle boîte aux lettres avec ce nom a été créée. C'est une erreur de tenter de créer INBOX ou une boîte aux lettres avec un nom qui fait référence à une boîte aux lettres existante. Toute erreur de création renverra une réponse NO étiquetée. Si un client tente de créer un nom de boîte aux lettres UTF-8 qui n'est pas un nom Net-Unicode valide, le serveur doit (doit) rejeter la création ou convertir le nom en Net-Unicode avant de créer la boîte aux lettres. Si le serveur décide de convertir (normaliser) le nom, il devrait (devrait) renvoyer une LIST non étiquetée avec un é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 créées dans une session IMAP peuvent (peuvent) être annoncées aux autres sessions IMAP en utilisant une réponse LIST non sollicitée. Si le serveur s'abonne automatiquement à une boîte aux lettres lors de sa création, alors la réponse LIST non sollicitée pour chaque nom de boîte aux lettres abonnée affectée doit (doit) inclure l'attribut \Subscribed.

Si le nom de la boîte aux lettres est suffixé avec le caractère séparateur de hiérarchie du serveur (tel que renvoyé par le serveur par une commande LIST), c'est une déclaration que le client a l'intention de créer des noms de boîtes aux lettres sous ce nom dans la hiérarchie. Les implémentations de serveur qui ne nécessitent pas cette déclaration doivent (doivent) ignorer la déclaration. Dans tous les cas, le nom créé est sans le délimiteur de hiérarchie final.

Si le caractère séparateur de hiérarchie du serveur apparaît ailleurs dans le nom, le serveur devrait (devrait) créer tous les noms hiérarchiques supérieurs nécessaires pour que la commande CREATE soit terminée avec succès. En d'autres termes, une tentative de créer "foo/bar/zap" sur un serveur dans lequel "/" est le caractère séparateur de hiérarchie devrait (devrait) créer foo/ et foo/bar/ s'ils n'existent pas déjà.

Si une nouvelle boîte aux lettres est créée avec le même nom qu'une boîte aux lettres qui a été supprimée, ses identifiants uniques doivent (doivent) être supérieurs à tous les identifiants uniques utilisés dans l'incarnation précédente de la boîte aux lettres, 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.

Exemple :

C: A003 CREATE owatagusiam/
S: A003 OK CREATE completed
C: A004 CREATE owatagusiam/blurdybloop
S: A004 OK CREATE completed
C: A005 CREATE NonNormalized
S: * LIST () "/" "Normalized" ("OLDNAME" ("NonNormalized"))
S: A005 OK CREATE completed

(Dans le dernier exemple, imaginez que "NonNormalized" est un nom de boîte aux lettres Unicode non normalisé NFC et que "Normalized" est sa version normalisée NFC.)

Note : L'interprétation de cet exemple dépend si "/" a été renvoyé comme séparateur de hiérarchie par LIST. Si "/" est le séparateur de hiérarchie, un nouveau niveau de hiérarchie nommé "owatagusiam" avec un membre appelé "blurdybloop" est créé. Sinon, deux boîtes aux lettres au même niveau de hiérarchie sont créées.