Thank you for reading this post, don't forget to subscribe!
рассмотрим процесс конфигурирования почтовых фильтров в Roundcube Webmail. Для этого мы настроим связку Dovecot + Sieve. Управление фильтрами будем осуществлять при помощи ManageSieve.
Установка компонентов
Перед установкой, обновим кэш пакетов:
apt update
Для нашей настройки мы установим следующие пакеты:
apt install dovecot-sieve dovecot-managesieved
* где:
- dovecot-sieve — плагин sieve для dovecot. Позволяет создавать правила, которые будет читать последний и перемещать почту в соответствии с данными правилами.
- dovecot-managesieved — плагин managesieved для dovecot. Позволяет запустить сервис, который будет принимать запросы на создание и управление правилами sieve.
Установка завершена. Переходим к настройке dovecot.
Настройка сервера dovecot
Открываем файл:
vi /etc/dovecot/conf.d/10-mail.conf
Добавляем директиву:
1 |
mail_home = /var/vmail/%d/%u/sieve |
* мы задаем опцию mail_home с путем до каталогов с почтой. Обратите внимание, что на вашем сервере настройка может быть другая и необходимо указать правильное значение. Переменные %d и %u указывают, соответственно, на имя домена и учетной записи.
Теперь откроем файл:
vi /etc/dovecot/conf.d/15-lda.conf
Находим раздел protocol lda и в нем приводим опцию mail_plugins к виду:
1 2 3 4 |
protocol lda { # Space separated list of plugins to load (default is global mail_plugins). mail_plugins = $mail_plugins sieve } |
* в данном примере мы добавляем плагин sieve, который должен теперь использоваться локальным агентом доставки lda.
Открываем файл:
vi /etc/dovecot/conf.d/20-managesieve.conf
Приводим опцию protocols к следующему виду:
1 2 |
protocols = $protocols sieve |
* по аналогии с protocol lda, мы указываем на необходимость использования sieve.
Открываем файл:
vi /etc/dovecot/conf.d/20-managesieve.conf
Необходимо добавить строки или убедиться, что они уже присутствуют в таком виде:
1 2 3 4 5 6 |
service managesieve-login { inet_listener sieve { port = 4190 } ... } |
* мы указываем, что наш сервис будет работать на порту 4190.
Открываем на редактирование файл:
vi /etc/dovecot/conf.d/90-sieve.conf
Приводим настройки к виду:
1 2 3 4 5 6 7 |
plugin { sieve = /var/vmail/%d/%u/sieve/dovecot.sieve sieve_global_path = /etc/dovecot/sieve/default.sieve sieve_dir = /var/vmail/%d/%u/sieve sieve_global_dir = /etc/dovecot/sieve/global/ ... } |
* где:
- sieve — путь до файла с правилами. Указывается для каждого ящика с помощью переменных.
- sieve_global_path — путь до общего файла с правилами. Используется, если отсутствует файл по пути sieve.
- sieve_dir — путь до каталога с подключаемыми скриптами-правилами. Указывается для каждого почтового ящика.
- sieve_global_dir — путь до общего каталога с подключаемыми правилами. Используется, если отсутствует sieve_dir.
Создаем каталог, путь до которого мы указали в директиве sieve_global_dir:
mkdir -p /etc/dovecot/sieve/global
Выставляем в качестве владельца и группы пользователя dovecot:
chown dovecot:dovecot -R /etc/dovecot/sieve
Перезапускаем dovecot для применения настроек:
systemctl restart dovecot
Настройка Roundcube
Переходим к настройке самого веб-интерфейса.
Сначала необходимо указать, что он должен использовать плагин managesieve:
vi /var/www/html/webmail/config/config.inc.php
* в данном примере мы открываем конфигурационный файл Roundcube по пути /var/www/html/webmail/config/config.inc.php, однако, в вашей системе данный путь может быть по другому пути. Необходимо это учесть и указать правильный путь.
Нам необходимо добавить опцию managesieve_host и указать, что мы будем использовать плагин managesieve:
1 2 3 4 5 6 |
$config['managesieve_host'] = 'localhost'; ... $config['plugins'] = [ … 'managesieve', ]; |
* отдельно скачивать плагин managesieve не требуется, так как он уже идет в стандартной поставке с Roundcube.
Теперь можно переходить в интерфейс webmail. Заходим под любой почтовой учетной записью, кликаем по Настройки и выбираем готовый набор фильтров roundcube:
Сверху кликаем по Создать и задаем критерии, по которым должно работать наше правило:
Кликаем по Сохранить.
Пробуем отправить тестовое письмо, чтобы оно попало под правило (в нашем примере, с темой Test). Проверяем, что правило отработало.