1

нужно ли исправлять postfix 2.11 с помощью исправления VDA для поддержки квот для каждого пользователя или домена, когда dovecot 2.2.x используется в качестве сервера imap? Я использую Ubuntu 14.04 LTS с postfixadmin 2.3. Я ценю любые полезные рабочие руководства. благодарю вас

вывод dovecot -n

http://pastebin.com/LCPmQ5Th

master.cf

http://pastebin.com/db6B2uMP

cat dovecot-sql.conf.ext

драйвер = mysql connect = host = 127.0.0.1 dbname = postfixadmin user = postfixadmin пароль = XXXXXXXX default_pass_scheme = MD5-CRYPT

password_query = ВЫБЕРИТЕ имя пользователя как пользователя, пароль ОТ почтового ящика ГДЕ имя пользователя = '% u'; user_query = ВЫБРАТЬ maildir AS home, 5000 AS uid, 5000 AS gid, CONCAT("*:bytes =", quota) AS quota_rule ОТ почтового ящика WHERE имя пользователя = '% n @% d' И активный = 1;

1 ответ1

0

Если postfix не пытается выполнить сам LDA и вместо этого вызывает deliver dovecot, тогда postfix вообще не должен знать о квотах.

Если вы использовали postfixadmin для управления виртуальными доменами, то у вас уже есть все необходимое для ограничения квот. Вы должны изменить SQL запрос dovecot «s , чтобы получать квоты пользователя:

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
####

Когда служба deliver dovecot пытается сохранить сообщение в папке «Входящие», она проверяет, была ли достигнута квота с заранее заданными пороговыми значениями 80% и 90% или нет. Если это так - служба квот-предупреждений вызывается и запускается скрипт, который помещает предупреждающее сообщение в почтовый ящик - без дальнейшей проверки квоты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .