В данной инструкции мы рассмотрим процесс конфигурирования почтовых фильтров в Roundcube Webmail. Для этого мы настроим связку Dovecot + Sieve. Управление фильтрами будем осуществлять при помощи ManageSieve.
Предполагается, что у нас уже настроен почтовый сервер. Все вспомогательные инструкции представлены ниже.
Установка необходимых пакетов
Настройка dovecot
Настройка Roundcube и тестового правила
Установка компонентов
Перед установкой, обновим кэш пакетов:
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
Добавляем директиву:
mail_home = /var/vmail/%d/%u/sieve
* мы задаем опцию mail_home с путем до каталогов с почтой. Обратите внимание, что на вашем сервере настройка может быть другая и необходимо указать правильное значение. Переменные %d и %u указывают, соответственно, на имя домена и учетной записи.
Теперь откроем файл:
vi /etc/dovecot/conf.d/15-lda.conf
Находим раздел protocol lda и в нем приводим опцию mail_plugins к виду:
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 к следующему виду:
protocols = $protocols sieve
* по аналогии с protocol lda, мы указываем на необходимость использования sieve.
Открываем файл:
vi /etc/dovecot/conf.d/20-managesieve.conf
Необходимо добавить строки или убедиться, что они уже присутствуют в таком виде:
service managesieve-login {
inet_listener sieve {
port = 4190
}
...
}
* мы указываем, что наш сервис будет работать на порту 4190.
Открываем на редактирование файл:
vi /etc/dovecot/conf.d/90-sieve.conf
Приводим настройки к виду:
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:
$config['managesieve_host'] = 'localhost';
...
$config['plugins'] = [
...
'managesieve',
];
* отдельно скачивать плагин managesieve не требуется, так как он уже идет в стандартной поставке с Roundcube.
Теперь можно переходить в интерфейс webmail. Заходим под любой почтовой учетной записью, кликаем по Настройки и выбираем готовый набор фильтров roundcube:
Переходим в roundcube к настройке фильтров
Сверху кликаем по Создать и задаем критерии, по которым должно работать наше правило:
Создаем правило фильтрации почты в roundcube
Кликаем по Сохранить.
Пробуем отправить тестовое письмо, чтобы оно попало под правило (в нашем примере, с темой Test). Проверяем, что правило отработало.