This documentation is for Dovecot v1.x, see wiki2 for v2.x documentation.


Quota backend specifies the method how Dovecot keeps track of the current quota usage. They don't (usually) specify users' quota limits, that's done by returning extra fields from userdb. There are different quota backends that Dovecot can use:

Enabling quota plugins

There are currently two quota related plugins:

Usually you'd enable these by adding them to the mail_plugins settings in the config file:

protocol imap {
  mail_plugins = quota imap_quota
protocol pop3 {
  mail_plugins = quota
# In case you're using deliver:
protocol lda {
  mail_plugins = quota


The configuration is done differently for v1.0 and v1.1:

Quota and Trash mailbox

Standard way to expunge messages with IMAP works by:

  1. Marking message with \Deleted flag
  2. Actually expunging the message using EXPUNGE command

Both of these commands can be successfully used while user's quota is full. However many clients use a "move-to-Trash" feature, which works by:

  1. COPY the message to Trash mailbox
  2. Mark the message with \Deleted
  3. Expunge the message from the original mailbox.
  4. (Maybe later expunge the message from Trash when "clean trash" feature is used)

If user is over quota (or just under it), the first COPY command will fail and user may get an unintuitive message about not being able to delete messages because user is over quota. The possible solutions for this are:

To make sure users don't start keeping messages permanently in Trash you can use a nightly cronjob or expire plugin (v1.1) to expunge old messages from Trash mailbox.

Quota (last edited 2011-10-15 11:09:00 by PascalVolk)