Passa al contenuto principale

6.3.4 Comando CREATE

Argomenti: nome casella di posta

Risposte: Risposta non taggata OPZIONALE: LIST

Risultato:

  • OK - create completata
  • NO - create fallita: impossibile creare casella di posta con quel nome
  • BAD - comando sconosciuto o argomenti non validi

Il comando CREATE crea una casella di posta con il nome specificato. Una risposta OK viene restituita solo se è stata creata una nuova casella di posta con quel nome. È un errore tentare di creare INBOX o una casella di posta con un nome che fa riferimento a una casella di posta esistente. Qualsiasi errore nella creazione restituirà una risposta NO taggata. Se un client tenta di creare un nome di casella di posta UTF-8 che non è un nome Net-Unicode valido, il server deve (deve) rifiutare la creazione o convertire il nome in Net-Unicode prima di creare la casella di posta. Se il server decide di convertire (normalizzare) il nome, dovrebbe (dovrebbe) restituire una LIST non taggata con un elemento di dati esteso OLDNAME, con il valore OLDNAME che è il nome della casella di posta fornito e il parametro name che è il nome della casella di posta normalizzato. (Vedere la Sezione 6.3.9.7 per maggiori dettagli.)

Le caselle di posta create in una sessione IMAP possono (possono) essere annunciate ad altre sessioni IMAP utilizzando una risposta LIST non richiesta. Se il server sottoscrive automaticamente una casella di posta quando viene creata, allora la risposta LIST non richiesta per ogni nome di casella di posta sottoscritta interessata deve (deve) includere l'attributo \Subscribed.

Se il nome della casella di posta ha come suffisso il carattere separatore di gerarchia del server (come restituito dal server tramite un comando LIST), questa è una dichiarazione che il client intende creare nomi di caselle di posta sotto questo nome nella gerarchia. Le implementazioni server che non richiedono questa dichiarazione devono (devono) ignorare la dichiarazione. In ogni caso, il nome creato è senza il delimitatore di gerarchia finale.

Se il carattere separatore di gerarchia del server appare altrove nel nome, il server dovrebbe (dovrebbe) creare tutti i nomi gerarchici superiori necessari affinché il comando CREATE venga completato con successo. In altre parole, un tentativo di creare "foo/bar/zap" su un server in cui "/" è il carattere separatore di gerarchia dovrebbe (dovrebbe) creare foo/ e foo/bar/ se non esistono già.

Se viene creata una nuova casella di posta con lo stesso nome di una casella di posta che è stata eliminata, i suoi identificatori univoci devono (devono) essere maggiori di qualsiasi identificatore univoco utilizzato nell'incarnazione precedente della casella di posta, a meno che la nuova incarnazione non abbia un valore di validità dell'identificatore univoco diverso. Vedere la descrizione del comando UID nella Sezione 6.4.9 per maggiori dettagli.

Esempio:

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

(Nell'ultimo esempio, immaginate che "NonNormalized" sia un nome di casella di posta Unicode non normalizzato NFC e che "Normalized" sia la sua versione normalizzata NFC.)

Nota: L'interpretazione di questo esempio dipende dal fatto che "/" sia stato restituito come separatore di gerarchia da LIST. Se "/" è il separatore di gerarchia, viene creato un nuovo livello di gerarchia chiamato "owatagusiam" con un membro chiamato "blurdybloop". Altrimenti, vengono create due caselle di posta allo stesso livello di gerarchia.