Настройка Dovecot + Sieve + ManageSieve + Roundcube на Ubuntu Server

Обновлено и опубликовано Опубликовано:

Используемые термины: DovecotRoundcubeUbuntu.

В данной инструкции мы рассмотрим процесс конфигурирования почтовых фильтров в 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

Добавляем директиву:

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). Проверяем, что правило отработало.

# Linux # Серверы # Почта
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет