7Network Working Group J. Myers
8Request for Comments: 2087 Carnegie Mellon
9Category: Standards Track January 1997
16 This document specifies an Internet standards track protocol for the
17 Internet community, and requests discussion and suggestions for
18 improvements. Please refer to the current edition of the "Internet
19 Official Protocol Standards" (STD 1) for the standardization state
20 and status of this protocol. Distribution of this memo is unlimited.
24 The QUOTA extension of the Internet Message Access Protocol [IMAP4]
25 permits administrative limits on resource usage (quotas) to be
26 manipulated through the IMAP protocol.
30 1. Abstract........................................... 1
31 2. Conventions Used in this Document.................. 1
32 3. Introduction and Overview.......................... 2
33 4. Commands........................................... 2
34 4.1. SETQUOTA Command................................... 2
35 4.2. GETQUOTA Command................................... 2
36 4.3. GETQUOTAROOT Command............................... 3
37 5. Responses.......................................... 3
38 5.1. QUOTA Response..................................... 3
39 5.2. QUOTAROOT Response................................. 4
40 6. Formal syntax...................................... 4
41 7. References......................................... 5
42 8. Security Considerations............................ 5
43 9. Author's Address................................... 5
462. Conventions Used in this Document
48 In examples, "C:" and "S:" indicate lines sent by the client and
58Myers Standards Track [Page 1]
60RFC 2087 QUOTA January 1997
633. Introduction and Overview
65 The QUOTA extension is present in any IMAP4 implementation which
66 returns "QUOTA" as one of the supported capabilities to the
69 An IMAP4 server which supports the QUOTA capability may support
70 limits on any number of resources. Each resource has an atom name
71 and an implementation-defined interpretation which evaluates to an
72 integer. Examples of such resources are:
76 STORAGE Sum of messages' RFC822.SIZE, in units of 1024 octets
77 MESSAGE Number of messages
80 Each mailbox has zero or more implementation-defined named "quota
81 roots". Each quota root has zero or more resource limits. All
82 mailboxes that share the same named quota root share the resource
83 limits of the quota root.
85 Quota root names do not necessarily have to match the names of
93 list of resource limits
95 Data: untagged responses: QUOTA
97 Result: OK - setquota completed
98 NO - setquota error: can't set that data
99 BAD - command unknown or arguments invalid
101 The SETQUOTA command takes the name of a mailbox quota root and a
102 list of resource limits. The resource limits for the named quota root
103 are changed to be the specified limits. Any previous resource limits
104 for the named quota root are discarded.
106 If the named quota root did not previously exist, an implementation
107 may optionally create it and change the quota roots for any number of
108 existing mailboxes in an implementation-defined manner.
114Myers Standards Track [Page 2]
116RFC 2087 QUOTA January 1997
119 Example: C: A001 SETQUOTA "" (STORAGE 512)
120 S: * QUOTA "" (STORAGE 10 512)
121 S: A001 OK Setquota completed
125 Arguments: quota root
127 Data: untagged responses: QUOTA
129 Result: OK - getquota completed
130 NO - getquota error: no such quota root, permission
132 BAD - command unknown or arguments invalid
134 The GETQUOTA command takes the name of a quota root and returns the
135 quota root's resource usage and limits in an untagged QUOTA response.
137 Example: C: A003 GETQUOTA ""
138 S: * QUOTA "" (STORAGE 10 512)
139 S: A003 OK Getquota completed
143 Arguments: mailbox name
145 Data: untagged responses: QUOTAROOT, QUOTA
147 Result: OK - getquota completed
148 NO - getquota error: no such mailbox, permission denied
149 BAD - command unknown or arguments invalid
151 The GETQUOTAROOT command takes the name of a mailbox and returns the
152 list of quota roots for the mailbox in an untagged QUOTAROOT
153 response. For each listed quota root, it also returns the quota
154 root's resource usage and limits in an untagged QUOTA response.
156 Example: C: A003 GETQUOTAROOT INBOX
157 S: * QUOTAROOT INBOX ""
158 S: * QUOTA "" (STORAGE 10 512)
159 S: A003 OK Getquota completed
170Myers Standards Track [Page 3]
172RFC 2087 QUOTA January 1997
179 Data: quota root name
180 list of resource names, usages, and limits
182 This response occurs as a result of a GETQUOTA or GETQUOTAROOT
183 command. The first string is the name of the quota root for which
186 The name is followed by a S-expression format list of the resource
187 usage and limits of the quota root. The list contains zero or
188 more triplets. Each triplet conatins a resource name, the current
189 usage of the resource, and the resource limit.
191 Resources not named in the list are not limited in the quota root.
192 Thus, an empty list means there are no administrative resource
193 limits in the quota root.
195 Example: S: * QUOTA "" (STORAGE 10 512)
1975.2. QUOTAROOT Response
200 zero or more quota root names
202 This response occurs as a result of a GETQUOTAROOT command. The
203 first string is the mailbox and the remaining strings are the
204 names of the quota roots for the mailbox.
206 Example: S: * QUOTAROOT INBOX ""
207 S: * QUOTAROOT comp.mail.mime
211 The following syntax specification uses the augmented Backus-Naur
212 Form (BNF) notation as specified in RFC 822 with one exception; the
213 delimiter used with the "#" construct is a single space (SP) and not
216 Except as noted otherwise, all alphabetic characters are case-
217 insensitive. The use of upper or lower case characters to define
218 token strings is for editorial clarity only. Implementations MUST
219 accept these strings in a case-insensitive fashion.
226Myers Standards Track [Page 4]
228RFC 2087 QUOTA January 1997
235 quota_list ::= "(" #quota_resource ")"
237 quota_resource ::= atom SP number SP number
244 setquota ::= "SETQUOTA" SP astring SP setquota_list
246 setquota_list ::= "(" 0#setquota_resource ")"
248 setquota_resource ::= atom SP number
252 [IMAP4] Crispin, M., "Internet Message Access Protocol - Version 4",
253 RFC 1730, University of Washington, December 1994.
255 [RFC-822] Crocker, D., "Standard for the Format of ARPA Internet
256 Text Messages", STD 11, RFC 822.
2588. Security Considerations
260 Implementors should be careful to make sure the implementation of
261 these commands does not violate the site's security policy. The
262 resource usage of other users is likely to be considered confidential
263 information and should not be divulged to unauthorized persons.
268 Carnegie-Mellon University
270 Pittsburgh PA, 15213-3890
282Myers Standards Track [Page 5]