This documentation is for Dovecot v2.x, see wiki1 for v1.x documentation.
Differences between revisions 1 and 2
Revision 1 as of 2005-10-28 15:35:03
Size: 1159
Editor: TimoSirainen
Comment:
Revision 2 as of 2006-06-08 21:08:53
Size: 2014
Editor: TimoSirainen
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Filesystem quota == = Quota =
Line 3: Line 3:
Dovecot doesn't work too well with filesystem quota currently. But there are a few things you can do: There are different quota backends that Dovecot can use:
Line 5: Line 5:
 * Set index file location to some partition where there are no quota limits. Dovecot can't currently handle out-of-quota error conditions when updating indexes.
 * mbox should work somewhat nicely as long as `mbox_lazy_writes=yes` in config file. Although if user doesn't delete any mails when closing the mailbox, Dovecot gives an "internal error".
 * Maildir also needs to update `dovecot-uidlist` file, which can't handle out-of-quota errors. Its location can be set using "CONTROL" parameter in default_mail_env.
 * [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.
Line 9: Line 10:
So, use something like: 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:
Line 12: Line 13:
# mbox:
default_mail_env = mbox:%h/mail:INBOX=/var/mail/%u:INDEX=/var/no-quotas/index/%u
protocol imap {
  mail_plugins = quota imap_quota
}
protocol pop3 {
  mail_plugins = quota
}
# In case you're using Dovecot-LDA:
protocol lda {
  mail_plugins = quota
} }}}
Line 15: Line 24:
# maildir:
default_mail_env = maildir:%h/Maildir:INDEX=/var/no-quotas/index/%u:CONTROL=/var/no-quotas/control/%u
}}}
Most of the quota backends have a few things in common:
Line 19: Line 26:
== Software quotas == 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.:
Line 21: Line 28:
Dovecot 1.0 supports quota using a quota plugin. It's currently discussed in [wiki:LDA Dovecot LDA] page and it supports only very simple quota calculation which is suitable only for mboxes. Maildir++ quota support will come later. {{{
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 }}}

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 

None: Quota (last edited 2019-09-12 12:29:34 by MichaelSlusarz)