Для настройки квоты для начала нужно сделать изменения в файле соединения с базой данных dovecot, чтобы при запросе система получала данные о квотах пользователей. Добавляем concat(‘*:bytes=’, quota) AS quota_rule в запрос user_query:
1 2 3 4 5 6 7 8 9 |
driver = mysql connect = host=localhost dbname=mail user=postfix password=pass default_pass_scheme = CRAM-MD5 password_query = SELECT username AS user,domain,password FROM mailbox WHERE username = '%u' AND active = '1' user_query = SELECT username AS user, '5000' AS uid, '5000' AS gid, concat('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u' AND domain = '%d' AND active = '1' |
Приводим секцию plugins к такому виду конфигурационного файла dovecot:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# Plugins mail_plugins = quota # Подключаем протоколу имап плагины quota, autocreate, imap_quota protocol imap { imap_client_workarounds = tb-extra-mailbox-sep mail_plugins = $mail_plugins autocreate imap_quota } # Подключаем протоколу pop3 плагин quota protocol pop3 { pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_uidl_format = %08Xu%08Xv mail_plugins = $mail_plugins } # Подключаем протоколу lda плагин quota protocol lda { # Куда будут перенаправлены недоставленные письма postmaster_address = postmaster@localhost auth_socket_path = /var/run/dovecot/auth-master mail_plugins = $mail_plugins } |
Добавляем в конец секции plugins директиву с настройками плагина quota (quota_rule – это квота по умолчанию для каждого пользователя. Она будет затираться настройками из запроса к базе данных):
1 2 3 4 5 6 |
plugin { quota = maildir:User quota quota_rule = *:storage=5GB } |
Оставить комментарий