нужно ли устанавливать исправление Postfix 2.11 с помощью патча VDA для каждого пользователя или домена?Поддержка квот, когда dovecot 2.2.x используется как сервер imap? Я использую ubuntu 14.04 LTS с postfixadmin 2.3. Я буду признателен за любые полезные рабочие руководства. Спасибо
вывод dovecot -n
мастер.cf
кот dovecot-sql.conf.ext
драйвер = mysql connect = хост=127.0.0.1 имя_базы_данных=postfixadmin пользователь=postfixadmin пароль=XXXXXXXXX схема_пароля_по_умолчанию = MD5-CRYPT
password_query = SELECT username как user, password FROM mailbox WHERE username='%u'; user_query = SELECT maildir AS home,5000 AS uid,5000 AS gid, CONCAT("*:bytes=",quota) AS quota_rule FROM mailbox WHERE username = '%n@%d' AND active=1;
решение1
Если postfix
не пытаться выполнять LDA самостоятельно, а вместо этого вызывать Dovecot deliver
, то postfix
вообще не нужно знать о квотах.
Если вы использовали postfixadmin
для управления виртуальными доменами, то у вас уже есть все необходимое для ограничений квот. Вам нужно изменить dovecot
SQL-запрос для получения квот пользователя:
user_query = SELECT maildir AS home, \
26 AS uid, \
26 AS gid, \
CONCAT("*:bytes=",quota) AS quota_rule \
FROM mailbox \
WHERE username = '%n@%d' \
AND active=1;
(не копируйте и не вставляйте этот пример слепо, используйте его как шаблон)
Затем вам нужно настроить плагин квот и службу предупреждений вdovecot.conf
ОБНОВЛЕНО:
. . . . . .
# this line enable quota plugin!
mail_plugins = quota
# here is the plugin's configuration
plugin {
quota = maildir:User quota
quota_rule = Junk:ignore
quota_rule2 = Trash:storage=+100M
quota_warning = storage=90%% quota-warning 90 %u %d
quota_warning2 = storage=80%% quota-warning 80 %u %d
quota_exceeded_message = ERROR:422 - Mailbox full, sorry.
. . . . .
}
. . . . .
service quota-warning {
executable = script /path/to/the/overquota.sh
user = $mail_uid
group = $mail_gid
unix_listener quota-warning {
user = $mail_uid
group = $mail_gid
}
}
. . . . .
overquota.sh
должно выглядеть так:
#!/bin/sh
cat << EOT | /usr/local/libexec/dovecot/dovecot-lda -d $2 -o "plugin/quota=maildir:User quota:noenforcing"
From: postmaster@$3
To: $2
Subject: == Quota warning ==
Content-Type: text/plain; charset="UTF-8"
Your mailbox is $1% full, so clean up your mess, please!
EOT
exit 0
####
Когда dovecot deliver
пытается сохранить сообщение во входящих, он проверяет, была ли достигнута квота предопределенных порогов 80% и 90% или нет. Если да, то вызывается служба предупреждения о квотах и запускается скрипт, который помещает предупреждающее сообщение в почтовый ящик — без дальнейшей проверки квоты.