mirror of
https://github.com/uw-imap/imap.git
synced 2024-11-16 10:28:23 +01:00
284 lines
8.3 KiB
Plaintext
284 lines
8.3 KiB
Plaintext
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
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]
|
|||
|
|
|||
|
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]
|
|||
|
|
|||
|
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]
|
|||
|
|
|||
|
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]
|
|||
|
|
|||
|
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]
|
|||
|
|