Используемые термины: Dovecot , PostfixAdmin , Postfix .
При установке почтового сервера на базе Postfix + Dovecot и использовании панели управления почтовыми ящиками PostfixAdmin, по умолчанию, квотирование не настроено — его можно задавать в последней, но работать квоты не будут. Нужна дополнительная настройка…
Открываем конфигурационный файл10-mail.conf:
vi /etc/dovecot/conf.d/10-mail.conf
Находим строку с mail_plugins и приводим ее к виду:
…
mail_plugins = $mail_plugins quota
…
* данная строка подключает к плагинам дополнительно плагин для управления квотами ( quota ). Если опция закомментирована, снимаем комментарий.
Открываем конфигурационный файл 20-imap.conf:
vi /etc/dovecot/conf.d/20-imap.conf
Находим опцию protocol imap и добавим в нее также возможность использования плагина с квотами:
protocol imap {
mail_plugins = $mail_plugins imap_quota
}
* опция mail_plugins может быть закомментирована. Если это так, то коментарий снимаем.
Открываем конфигурационный файл 10-master.conf:
vi /etc/dovecot/conf.d/10-master.conf
Находим опцию service dict , в ней unix_listener dict и приводим ее к виду:
service dict {
unix_listener dict {
mode = 0660
user = vmail
group = vmail
}
}
Открываем файл 90-quota.conf:
vi /etc/dovecot/conf.d/90-quota.conf
Добавляем:
plugin {
quota = dict:User quota::proxy::quota
}
* или снимаем комментарий с соответствующей строки quota = dict:User quota::proxy::quota .
Открываем основной конфигурационный файл для dovecot:
vi /etc/dovecot/dovecot.conf
Находим раздел dict и снимаем комментарий или добавляем:
dict {
quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
Теперь создаем файл для настройки выгрузки квот:
vi /etc/dovecot/dovecot-dict-sql.conf.ext
connect = host=localhost dbname=postfix user=postfix password=postfix123
map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}
* где host — сервер mysql, к которому будем подключаться; dbname — имя базы данных, в которой находятся пользователи postfix; user — пользователь, под которым мы подключаемся к базе; password — пароль для подключения к базе. В данном примере мы подключимся к СУБД, которая находится на том же сервере ( localhost ) к базе postfix под пользователем postfix с паролем postfix123 .
Откроем наш файл, в котором мы описываем настройки выборки данных по пользователям из базы данных:
vi /etc/dovecot/dovecot-sql.conf.ext
Находим запрос user_query и дописываем в SELECT CONCAT(‘*:bytes=’, quota) AS quota_rule — у меня в итоге получилось:
user_query = SELECT CONCAT(‘/home/mail/’,LCASE(`domain`),’/’,LCASE(`maildir`)), 1024 AS uid, 1024 AS gid , CONCAT(‘*:bytes=’, quota) AS quota_rule FROM mailbox WHERE username = ‘%u’
* если в нашем файле запросов есть несколько строк user_query , то необходимо дописать запрос для последней.
Проверяем конфигурационный файл dovecot:
doveconf
… и если команда не вернет ошибку, перезапускаем его:
systemctl restart dovecot
Для начала в командной строке вводим:
doveadm quota get -u user@domain.net
* user@domain.net — почтовый пользователь, для которого нужно показать квоту.
Данная команда отобразит квоту для пользователя, например:
Quota name Type Value Limit %
User quota STORAGE 16420 50000 32
User quota MESSAGE 14 — 0
* в данном примере почтовый ящик занимает около 16 Мб, а квота около 50 Мб — ящик заполнен на 32% .
Теперь открываем PostfixAdmin — заходим в настройки почтового ящика и ставим небольшой лимит, например, в 5 Мб:
Теперь объем ящика превышает лимит:
doveadm quota get -u user@domain.net
Quota name Type Value Limit %
User quota STORAGE 16420 5000 328
User quota MESSAGE 14 — 0
* объем превышен, почти, втрое.
Некоторые почтовые клиенты покажут превышение лимита, например, Thunderbird:
Открываем конфигурационный файл 90-quota.conf:
vi /etc/dovecot/conf.d/90-quota.conf
Снимаем комментарий или добавляем данные строки:
plugin {
quota_warning = storage=95%% quota-warning 95 %u
quota_warning2 = storage=80%% quota-warning 80 %u
}
* в данном примере мы указываем на необходимость делать 2 предупреждения — первое при достижении объема ящика в 80% , второе — 95% . Сервис dovecot, который будет это обеспечивать, называется quota-warning .
Теперь находим раздел service quota-warning и приводим его к виду:
service quota-warning {
executable = script /usr/local/bin/quota-warning.sh
user = dovecot
unix_listener quota-warning {
user = vmail
}
}
* мы создали сервис quota-warning , который будет запускать скрит /usr/local/bin/quota-warning.sh .
Создаем сам скрипт quota-warning.sh:
vi /usr/local/bin/quota-warning.sh
cat << EOF | /usr/libexec/dovecot/dovecot-lda -d $2 -o «plugin/quota=maildir:User quota:noenforcing»
Content-Type: text/html; charset=utf-8
From: Администратор почты <postmaster@remontka.com>
Subject: Предупреждение о превышении квоты на почтовый ящик
X-Priority: 2
<p>Размер Вашего почтового ящика составляет $1% от установленного ограничения.<br>
Чтобы уменьшить его размер Вы можете удалить большие письма с вложениями, старые письма или почистить корзину.</p>
EOF
* где postmaster@remontka.com — административный почтовый ящик. Сам текст сообщения можно преобразовать, чтобы оно было более презентабельным.
Задаем права на исполнение скрипта:
chmod +x /usr/local/bin/quota-warning.sh
Проверяем, что нам приходят уведомления, запустив скрипт:
/usr/local/bin/quota-warning.sh 80 user@domain.net
* где user@domain.net — наш почтовый ящик, на который должно будет отправиться уведомление.
Перезапускаем службу dovecot:
systemctl restart dovecot
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…