--- /dev/null
+
+
+
+
+
+
+Network Working Group J. Myers
+Request for Comments: 2087 Carnegie Mellon
+Category: Standards Track January 1997
+
+
+ IMAP4 QUOTA extension
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+1. Abstract
+
+ The QUOTA extension of the Internet Message Access Protocol [IMAP4]
+ permits administrative limits on resource usage (quotas) to be
+ manipulated through the IMAP protocol.
+
+Table of Contents
+
+ 1. Abstract........................................... 1
+ 2. Conventions Used in this Document.................. 1
+ 3. Introduction and Overview.......................... 2
+ 4. Commands........................................... 2
+ 4.1. SETQUOTA Command................................... 2
+ 4.2. GETQUOTA Command................................... 2
+ 4.3. GETQUOTAROOT Command............................... 3
+ 5. Responses.......................................... 3
+ 5.1. QUOTA Response..................................... 3
+ 5.2. QUOTAROOT Response................................. 4
+ 6. Formal syntax...................................... 4
+ 7. References......................................... 5
+ 8. Security Considerations............................ 5
+ 9. Author's Address................................... 5
+
+
+2. Conventions Used in this Document
+
+ In examples, "C:" and "S:" indicate lines sent by the client and
+ server respectively.
+
+
+
+
+
+
+
+
+Myers Standards Track [Page 1]
+\f
+RFC 2087 QUOTA January 1997
+
+
+3. Introduction and Overview
+
+ The QUOTA extension is present in any IMAP4 implementation which
+ returns "QUOTA" as one of the supported capabilities to the
+ CAPABILITY command.
+
+ An IMAP4 server which supports the QUOTA capability may support
+ limits on any number of resources. Each resource has an atom name
+ and an implementation-defined interpretation which evaluates to an
+ integer. Examples of such resources are:
+
+ Name Interpretation
+
+ STORAGE Sum of messages' RFC822.SIZE, in units of 1024 octets
+ MESSAGE Number of messages
+
+
+ Each mailbox has zero or more implementation-defined named "quota
+ roots". Each quota root has zero or more resource limits. All
+ mailboxes that share the same named quota root share the resource
+ limits of the quota root.
+
+ Quota root names do not necessarily have to match the names of
+ existing mailboxes.
+
+4. Commands
+
+4.1. SETQUOTA Command
+
+ Arguments: quota root
+ list of resource limits
+
+ Data: untagged responses: QUOTA
+
+ Result: OK - setquota completed
+ NO - setquota error: can't set that data
+ BAD - command unknown or arguments invalid
+
+ The SETQUOTA command takes the name of a mailbox quota root and a
+ list of resource limits. The resource limits for the named quota root
+ are changed to be the specified limits. Any previous resource limits
+ for the named quota root are discarded.
+
+ If the named quota root did not previously exist, an implementation
+ may optionally create it and change the quota roots for any number of
+ existing mailboxes in an implementation-defined manner.
+
+
+
+
+
+Myers Standards Track [Page 2]
+\f
+RFC 2087 QUOTA January 1997
+
+
+ Example: C: A001 SETQUOTA "" (STORAGE 512)
+ S: * QUOTA "" (STORAGE 10 512)
+ S: A001 OK Setquota completed
+
+4.2. GETQUOTA Command
+
+ Arguments: quota root
+
+ Data: untagged responses: QUOTA
+
+ Result: OK - getquota completed
+ NO - getquota error: no such quota root, permission
+ denied
+ BAD - command unknown or arguments invalid
+
+ The GETQUOTA command takes the name of a quota root and returns the
+ quota root's resource usage and limits in an untagged QUOTA response.
+
+ Example: C: A003 GETQUOTA ""
+ S: * QUOTA "" (STORAGE 10 512)
+ S: A003 OK Getquota completed
+
+4.3. GETQUOTAROOT Command
+
+ Arguments: mailbox name
+
+ Data: untagged responses: QUOTAROOT, QUOTA
+
+ Result: OK - getquota completed
+ NO - getquota error: no such mailbox, permission denied
+ BAD - command unknown or arguments invalid
+
+ The GETQUOTAROOT command takes the name of a mailbox and returns the
+ list of quota roots for the mailbox in an untagged QUOTAROOT
+ response. For each listed quota root, it also returns the quota
+ root's resource usage and limits in an untagged QUOTA response.
+
+ Example: C: A003 GETQUOTAROOT INBOX
+ S: * QUOTAROOT INBOX ""
+ S: * QUOTA "" (STORAGE 10 512)
+ S: A003 OK Getquota completed
+
+
+
+
+
+
+
+
+
+
+Myers Standards Track [Page 3]
+\f
+RFC 2087 QUOTA January 1997
+
+
+5. Responses
+
+5.1. QUOTA Response
+
+ Data: quota root name
+ list of resource names, usages, and limits
+
+ This response occurs as a result of a GETQUOTA or GETQUOTAROOT
+ command. The first string is the name of the quota root for which
+ this quota applies.
+
+ The name is followed by a S-expression format list of the resource
+ usage and limits of the quota root. The list contains zero or
+ more triplets. Each triplet conatins a resource name, the current
+ usage of the resource, and the resource limit.
+
+ Resources not named in the list are not limited in the quota root.
+ Thus, an empty list means there are no administrative resource
+ limits in the quota root.
+
+ Example: S: * QUOTA "" (STORAGE 10 512)
+
+5.2. QUOTAROOT Response
+
+ Data: mailbox name
+ zero or more quota root names
+
+ This response occurs as a result of a GETQUOTAROOT command. The
+ first string is the mailbox and the remaining strings are the
+ names of the quota roots for the mailbox.
+
+ Example: S: * QUOTAROOT INBOX ""
+ S: * QUOTAROOT comp.mail.mime
+
+6. Formal syntax
+
+ The following syntax specification uses the augmented Backus-Naur
+ Form (BNF) notation as specified in RFC 822 with one exception; the
+ delimiter used with the "#" construct is a single space (SP) and not
+ one or more commas.
+
+ Except as noted otherwise, all alphabetic characters are case-
+ insensitive. The use of upper or lower case characters to define
+ token strings is for editorial clarity only. Implementations MUST
+ accept these strings in a case-insensitive fashion.
+
+
+
+
+
+
+Myers Standards Track [Page 4]
+\f
+RFC 2087 QUOTA January 1997
+
+
+ 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. References
+
+ [IMAP4] Crispin, M., "Internet Message Access Protocol - Version 4",
+ RFC 1730, University of Washington, December 1994.
+
+ [RFC-822] Crocker, D., "Standard for the Format of ARPA Internet
+ Text Messages", STD 11, RFC 822.
+
+8. Security Considerations
+
+ Implementors should be careful to make sure the implementation of
+ these commands does not violate the site's security policy. The
+ resource usage of other users is likely to be considered confidential
+ information and should not be divulged to unauthorized persons.
+
+9. Author's Address
+
+ John G. Myers
+ Carnegie-Mellon University
+ 5000 Forbes Ave.
+ Pittsburgh PA, 15213-3890
+
+ EMail: jgm+@cmu.edu
+
+
+
+
+
+
+
+
+
+Myers Standards Track [Page 5]
+\f