IMAP : Formats de données


IMAP utilise des commandes et réponses textuelles. Les données peuvent se présenter sous différentes formes : atomes, nombre, chaîne, liste parenthèsée ou NIL.

1 Atome


Un atome consiste en un ou plus caractères non spéciaux.

2 Nombre


Un nombre consiste en un ou plusieurs chiffres et représente une valeur numérique.

3 Chaîne


Une chaîne peut avoir deux formes : littérale ou "quoted". Le forme littérale est la forme générale d'une chaîne. La forme "quoted" est une variante qui évite qu'un caractère littéral ne soit traiter comme une commande, cependant les caractères qui peuvent être utilisés dans une chaîne "quoted" sont limités. Une chaîne littérale est une séquence de zéro octets ou plus ouverte par une accolade ouvrante (" {" ), fermée par une accolade fermante (" } ") et suivie de CRLF.
Dans le cas où des chaîne littérales sont transmisses par le serveur au client, CRLF est immédiatement suivit par l'octet de données.
Dans le cas d'une chaîne littérale transmise par le client vers le serveur, le client doit attendre que le serveur soit prêt et ensuite seulement, il peut envoyer l'octet de données.
Une chaîne "quoted" est une séquence de zéro caractères 7 bits ou plus, sauf CR et LF, ouverte et fermée par des guillemets.
La chaîne vide est représentée soit par "" (une chaîne "quoted" avec zéro caractères), soit par {0} suivit de CRLF (une chaîne littérale avec zéro octets).

4 Listes parenthèsées


Les structures de données sont représentées sous forme de listes parenthèsées : une séquence d'objets de données séparés par des espaces, chaque objet étant enfermé dans une paire de parenthèses. Une liste parenthèsée peut contenir d'autre listes parenthèsées.
La liste vide est représentée par () c à d une liste ne contenant aucun membre.

5 NIL


L'atome spécial NIL représente la non-existence d'un objet de données particulier. NIL permet de faire une distinction entre une chaîne ou une liste vide et une chaîne ou une liste qui n'existe pas.