Groupe de travail Réseau	J. Myers, Carnegie Mellon	
Request for Comments : 2087	janvier 1997	
Catégorie : En cours de normalisation	Traduction Claude Brière de L'Isle	

Extension IMAP4 QUOTA

Statut du présent mémoire
Le présent document spécifie un protocole de l’Internet en cours de normalisation pour la communauté de l’Internet, et appelle à des discussions et suggestions pour son amélioration. Prière de se référer à l’édition en cours des "Normes officielles des protocoles de l’Internet" (STD 1) pour connaître l’état de la normalisation et le statut de ce protocole. La distribution du présent mémoire n’est soumise à aucune restriction.

1.	Résumé

L'extension QUOTA au protocole d'accès au message Internet (IMAP4, Internet Message Access Protocol) [RFC1730] permet de manipuler les limites administrative d'utilisation de ressources (les quotas) à travers le protocole IMAP.

Table des matières
1. Résumé	1
2. Conventions utilisées dans le document	1
3. Introduction et généralités	1
4. Commandes	2
4.1 Commande SETQUOTA	2
4.2 Commande GETQUOTA	2
4.3 Commande GETQUOTAROOT	2
5. Réponses	3
5.1 Réponse QUOTA	3
5.2 Réponse QUOTAROOT	3
6. Syntaxe formelle	3
7. Références	4
8. Considérations pour la sécurité	4
9. Adresse de l'auteur	4

2.	Conventions utilisées dans le document

Dans les exemples, "C:" et "S:" indiquente les lignes envoyées respectivement par le client et le serveur.

3.	Introduction et généralités

L'extension QUOTA est présente dans toute mise en œuvre IMAP4 qui retourne "QUOTA" comme une des capacités prises en charge sur la commande CAPABILITY.

Un serveur IMAP4 qui prend en charge la capacité QUOTA peut prendre en charge des limites sur tout nombre de ressources. Chaque ressource a un nom atomique et une interprétation définie par la mise en œuvre qui évalue en un entier. Des exemples de telles ressources sont :

Nom	Interprétation	
STORAGE	Somme des messages' RFC822.SIZE, en unités de 1024 octets	
MESSAGE	Nombre de messages	

Chaque boîte aux lettres a zéro, une ou plusieurs "quota roots" (racine de quota) désignéee définies par la mise en œuvre. Chaque racine de quota a zéro, une ou plusieurs limites de ressources. Toutes les boîtes aux lettres qui partagent la même racine de quota désignée partagent les limites de ressource de la racine de quota.

Les noms de racine de quota n'ont pas nécessairement à correspondre aux noms des boîtes aux lettres existantes.

4.	Commandes
4.1	Commande SETQUOTA

Arguments :	quota root	liste de limites de ressource

Données :	réponses non étiquetées :	QUOTA

Résultat :	OK - setquota terminé
	NO - setquota erronné : on ne peut pas établir des données
	BAD – commande inconnue ou arguments invalides

La commande SETQUOTA prend le nom d'une racine de quota de boîte aux lettres et une liste de limites de ressource. Les limites de ressource pour la racine de quota désignée sont changées pour devenir les limites spécifiées. Toutes les limites de ressource précédentes pour la racine de quota désignée sont éliminées.

Si la racine de quota désignée n'existait pas précédemment, une mise en œuvre peut facultativement la créer et changer les racines de quota en tout nombre de boîtes aux lettres existantes d'une façon définie par la mise en œuvre.

Exemple :
C: A001 SETQUOTA "" (STORAGE 512)
S: * QUOTA "" (STORAGE 10 512)
S: A001 OK Setquota terminé

4.2	Commande GETQUOTA

Arguments :	quota root

Données :	réponses non étiquetées :	QUOTA

Résultat :	OK - getquota terminé
	NO - getquota  erroné :  aucune telle racine de quota,  permission refusée
	BAD – commande inconnue ou arguments invalides

La commande GETQUOTA prend le nom d'une racine de quota et retourne l'usage et les limites de la racine de quota dans une réponse QUOTA non étiquetée.

Exemple :
C: A003 GETQUOTA ""
S: * QUOTA "" (STORAGE 10 512)
S: A003 OK Getquota completed

4.3	Commande GETQUOTAROOT
Arguments :	nom de boîte aux lettres

Données :	réponses non étiquetées : QUOTAROOT, QUOTA

Résultat :	OK - getquota terminé
	NO - getquota erroné : aucune telle boîte aux lettres, permission refusée
	BAD - commande inconnue ou arguments invalides

La commande GETQUOTAROOT prend le nom d'une boîte aux lettres et retourne la liste des racines de quota pour la boîte aux lettres dans une réponse QUOTAROOT non étiquetée. Pour chaque racine de quota de la liste, elle retourne aussi l'usage et les limites de la racine de quota dans une réponse QUOTA non étiquetée.

Exemple :
C: A003 GETQUOTAROOT INBOX
S: * QUOTAROOT INBOX ""
S: * QUOTA "" (STORAGE 10 512)
S: A003 OK Getquota completed

5.	Réponses
5.1	Réponse QUOTA

Données :	nom de la racine de quota
	liste des noms de ressource, usages, et limites

Cette réponse survient comme résultat d'une commande GETQUOTA ou GETQUOTAROOT. La première chaîne est le nom de la racine de quota pour laquelle ce quota s'applique.

Le nom est suivi d'une liste de format S-expression de l'usage et des limites de ressource de la racine de quota. La liste contient zéro, un, ou plusieurs triplets. Chaque triplet contient un nom de ressource, l'usage actuel de la ressource, et la limite de la ressource.

Les ressources qui ne sont pas désignées dans la liste ne sont pas limitées dans la racine de quota. Donc, une liste vide signifie qu'il n'y a pas de limite administrative aux ressources dans la racine de quota.

Exemple :
S: * QUOTA "" (STORAGE 10 512)

5.2	Réponse QUOTAROOT

Données :	nom de boîte aux lettres
	zéro, un, ou plusieurs noms de racine de quota

Cette réponse survient comme résultat d'une commande GETQUOTAROOT. La première chaîne est la boîte aux lettres et les chaînes restantes sont les noms des racines de quota pour les boîtes aux lettres.

Exemple :
S: * QUOTAROOT INBOX ""
S: * QUOTAROOT comp.mail.mime

6.	Syntaxe formelle

La spécification de syntaxe qui suit utilise la notation de forme Backus-Naur augmentée (ABNF) comme spécifiée dans la [RFC0822] avec une exception ; le délimiteur utilisé avec la construction "#" est une seule espace (SP) et non pas une ou plusieurs virgules.

Sauf notation contraire, tous les caractères alphabétiques sont insensibles à la casse. L'utilisation de caractèrees majuscules ou minuscules pour définir des chaînes de jetons est seulement pour la clarté de l'exposé. Les mises en œuvre DOIVENT accepter ces chaînes de façon insensible à la casse.

getquota        ::= "GETQUOTA" SP astring

getquotaroot    ::= "GETQUOTAROOT" SP astring

quota_list      ::= "(" #quota_resource ")"

quota_resource  ::= atom SP number SP number

quota_response  ::= "QUOTA" SP astring SP quota_list

quotaroot_response ::= "QUOTAROOT" SP astring *(SP astring)

setquota        ::= "SETQUOTA" SP astring SP setquota_list

setquota_list   ::= "(" 0#setquota_resource ")"

setquota_resource ::= atom SP number

7.	Références
[RFC1730]	M. Crispin, "Protocole d'accès au message Internet v4 (IMAP4)", décembre 1994. (Obsolète, voir RFC 2060, 3501)

[RFC0822]	D. Crocker, "Norme pour le format des messages de texte de l'ARPA-Internet", STD 11, août 1982. (Obsolète, remplacée par la RFC5322)

8.	Considérations pour la sécurité

Les personnes qui mettent en œuvre la présente spécification devraient veiller à s'assurer que la mise en œuvre de ces commandes ne viole pas la politique de sécurité du site. L'utilisation de ressources d'autres usagers sera vraisemblablement considérée comme une information confidentielle et ne devrait pas être divulguée à des personnes non autorisées.

9.	Adresse de l'auteur

John G. Myers
Carnegie-Mellon University
5000 Forbes Ave.
Pittsburgh PA, 15213-3890
mél : jgm+@cmu.edu