This documentation is for Dovecot v2.x, see wiki1 for v1.x documentation.
Differences between revisions 2 and 3
Revision 2 as of 2006-06-08 21:08:53
Size: 2014
Editor: TimoSirainen
Comment:
Revision 3 as of 2006-06-11 18:01:52
Size: 2201
Editor: TimoSirainen
Comment:
Deletions are marked like this. Additions are marked like this.
Line 48: Line 48:
user_attrs = uid,homeDirectory,,,uidNumber,gidNumber,quotaStorage=quota }}} user_attrs = uid,homeDirectory,,,uidNumber,gidNumber,quotaStorage=quota

# If you have the quota already as kilobytes in LDAP, there's a kludgy way to use it directly:
user_attrs = uid,homeDirectory,,,uidNumber,gidNumber,quotaStorage=quota=dirsize:storage }}}

Quota

There are different quota backends that Dovecot can use:

  • [wiki:Quota/FS fs]: Filesystem quota enforcing.
  • [wiki:Quota/Dirsize dirsize]: The simplest quota backend. It scans all the files from mail directories to calculate the quota.
  • [wiki:Quota/Dict dict]: Store quota in a dictionary. Currently the only dictionary backend is MySQL.
  • [wiki:Quota/Maildir maildir]: Maildir++ quota.

The quota is supported as a plugin for Dovecot. There exists a plugin named "quota" which does the actual work. For reporting quota information via IMAP there exists also "imap_quota" plugin. Usually you'd enable these by adding them to the mail_plugins settings in config file:

protocol imap {
  mail_plugins = quota imap_quota
}
protocol pop3 {
  mail_plugins = quota
}
# In case you're using Dovecot-LDA:
protocol lda {
  mail_plugins = quota
} 

Most of the quota backends have a few things in common:

You can set the quota as kilobytes (named storage) and/or as number of messages (named messages). Usually only the storage quota is used. Usually these can be given to the quota backend as parameters, eg.:

plugin {
  # 10MB quota limit
  quota = maildir:storage=10240
  # 1000 messages quota limit
  quota = maildir:messages=1000
  # 10MB + 1000 messages quota limit
  quota = maildir:storage=10240:messages=1000
} 

The above example shows how to set the same quota globally for everone. You can override this for one or all users by returning quota field from userdb. See UserDatabase for more information about how to set them for the userdb you're using. Here's an example using SQL userdb:

user_query = SELECT home, uid, gid, 'dirsize:storage=' || quota_bytes AS quota FROM users WHERE userid = '%u' 

With LDAP use something like:

# quotaStorage must be in the format mentioned above
# For example: dirsize:storage=10240
user_attrs = uid,homeDirectory,,,uidNumber,gidNumber,quotaStorage=quota

# If you have the quota already as kilobytes in LDAP, there's a kludgy way to use it directly:
user_attrs = uid,homeDirectory,,,uidNumber,gidNumber,quotaStorage=quota=dirsize:storage 

None: Quota (last edited 2021-06-15 23:54:28 by MichaelSlusarz)