6.3.4 CREATE-Befehl
Argumente: Postfachname
Antworten: OPTIONALE nicht markierte Antwort: LIST
Ergebnis:
- OK - create abgeschlossen
- NO - create fehlgeschlagen: kann Postfach mit diesem Namen nicht erstellen
- BAD - Befehl unbekannt oder Argumente ungültig
Der CREATE-Befehl erstellt ein Postfach mit dem angegebenen Namen. Eine OK-Antwort wird nur zurückgegeben, wenn ein neues Postfach mit diesem Namen erstellt wurde. Es ist ein Fehler, zu versuchen, INBOX oder ein Postfach mit einem Namen zu erstellen, der sich auf ein vorhandenes Postfach bezieht. Jeder Fehler bei der Erstellung gibt eine markierte NO-Antwort zurück. Wenn ein Client versucht, einen UTF-8-Postfachnamen zu erstellen, der kein gültiger Net-Unicode-Name ist, muss (muss) der Server die Erstellung ablehnen oder den Namen in Net-Unicode konvertieren, bevor das Postfach erstellt wird. Wenn der Server beschließt, den Namen zu konvertieren (normalisieren), sollte (sollte) er eine nicht markierte LIST mit einem erweiterten Datenelement OLDNAME zurückgeben, wobei der OLDNAME-Wert der bereitgestellte Postfachname ist und der name-Parameter der normalisierte Postfachname ist. (Siehe Abschnitt 6.3.9.7 für weitere Details.)
In einer IMAP-Sitzung erstellte Postfächer können (können) anderen IMAP-Sitzungen über eine unaufgeforderte LIST-Antwort angekündigt werden. Wenn der Server ein Postfach beim Erstellen automatisch abonniert, muss (muss) die unaufgeforderte LIST-Antwort für jeden betroffenen abonnierten Postfachnamen das \Subscribed-Attribut enthalten.
Wenn dem Postfachnamen das Hierarchietrennzeichen des Servers (wie vom Server durch einen LIST-Befehl zurückgegeben) als Suffix hinzugefügt wird, ist dies eine Erklärung, dass der Client beabsichtigt, Postfachnamen unter diesem Namen in der Hierarchie zu erstellen. Serverimplementierungen, die diese Erklärung nicht benötigen, müssen (müssen) die Erklärung ignorieren. In jedem Fall wird der erstellte Name ohne das nachfolgende Hierarchietrennzeichen erstellt.
Wenn das Hierarchietrennzeichen des Servers an anderer Stelle im Namen erscheint, sollte (sollte) der Server alle übergeordneten hierarchischen Namen erstellen, die erforderlich sind, damit der CREATE-Befehl erfolgreich abgeschlossen werden kann. Mit anderen Worten, ein Versuch, "foo/bar/zap" auf einem Server zu erstellen, bei dem "/" das Hierarchietrennzeichen ist, sollte (sollte) foo/ und foo/bar/ erstellen, falls diese noch nicht existieren.
Wenn ein neues Postfach mit demselben Namen wie ein gelöschtes Postfach erstellt wird, müssen (müssen) seine eindeutigen Identifikatoren größer sein als alle eindeutigen Identifikatoren, die in der vorherigen Inkarnation des Postfachs verwendet wurden, es sei denn, die neue Inkarnation hat einen anderen Gültigkeitswert für eindeutige Identifikatoren. Siehe die Beschreibung des UID-Befehls in Abschnitt 6.4.9 für weitere Details.
Beispiel:
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
(Im letzten Beispiel stellen Sie sich vor, dass "NonNormalized" ein nicht-NFC-normalisierter Unicode-Postfachname ist und dass "Normalized" seine NFC-normalisierte Version ist.)
Hinweis: Die Interpretation dieses Beispiels hängt davon ab, ob "/" als Hierarchietrennzeichen von LIST zurückgegeben wurde. Wenn "/" das Hierarchietrennzeichen ist, wird eine neue Hierarchieebene namens "owatagusiam" mit einem Mitglied namens "blurdybloop" erstellt. Andernfalls werden zwei Postfächer auf derselben Hierarchieebene erstellt.