IMAP4 QUOTA extension
obsoleted by
- rfc-9208 — IMAP QUOTA Extension
Extracted elements (15)
An empty resource list in a QUOTA response explicitly means no administrative resource limits exist in the quota root, providing a clear representation for unlimited quota roots rather than omitting the response entirely.
Quota roots are used as an indirection layer between mailboxes and resource limits, allowing multiple mailboxes to share the same quota root and thus the same limits. This design supports flexible administrative groupings without requiring quota roots to match mailbox names.
Implementations MUST accept command strings (e.g., GETQUOTA, SETQUOTA, GETQUOTAROOT) in a case-insensitive fashion, as the use of upper or lower case in token definitions is for editorial clarity only.
Each mailbox has zero or more named quota roots, and all mailboxes sharing the same quota root share its resource limits. Quota root names do not necessarily match the names of existing mailboxes.
Resources are named atoms with implementation-defined interpretations. Standard examples include STORAGE (sum of messages' RFC822.SIZE in units of 1024 octets) and MESSAGE (number of messages).
The GETQUOTA command takes a quota root name and returns the quota root's current resource usage and limits in an untagged QUOTA response. Returns NO if no such quota root exists or permission is denied.
The GETQUOTAROOT command takes a mailbox name and returns the list of quota roots for the mailbox in an untagged QUOTAROOT response, plus a QUOTA response for each listed quota root. Returns NO if the mailbox does not exist or permission is denied.
The QUOTA extension is present in any IMAP4 implementation which returns 'QUOTA' as one of the supported capabilities to the CAPABILITY command. Servers may support limits on any number of named resources, each with an atom name and an integer-valued interpretation.
The QUOTA response contains the quota root name followed by an S-expression list of zero or more triplets: resource name, current usage, and resource limit. Resources absent from the list are not limited; an empty list means no administrative resource limits.
The QUOTAROOT response contains the mailbox name followed by zero or more quota root names. It is returned as a result of the GETQUOTAROOT command.
The SETQUOTA command takes a quota root name and a list of resource limits; it replaces any previous limits for that quota root. If the quota root did not previously exist, an implementation may optionally create it and reassign quota roots for existing mailboxes.
Implementors should ensure that QUOTA commands do 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.
The quota_resource element is encoded as: atom SP number SP number — representing resource name, current usage, and limit respectively. Multiple quota_resource elements are enclosed in parentheses as quota_list.
The QUOTAROOT response syntax is: 'QUOTAROOT' SP astring *(SP astring), where the first astring is the mailbox name and subsequent astrings are quota root names.
The setquota_resource element is encoded as: atom SP number — resource name followed by its limit. The setquota_list wraps zero or more such elements in parentheses.