Dovecot + Sieve + ManageSieve + Roundcube на Ubuntu

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

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

* мы зада­ем опцию mail_home с путем до ката­ло­гов с поч­той. Обра­ти­те вни­ма­ние, что на вашем сер­ве­ре настрой­ка может быть дру­гая и необ­хо­ди­мо ука­зать пра­виль­ное зна­че­ние. Пере­мен­ные %d и %u ука­зы­ва­ют, соот­вет­ствен­но, на имя доме­на и учет­ной записи.

Теперь откро­ем файл:

vi /etc/dovecot/conf.d/15-lda.conf

Нахо­дим раз­дел protocol lda и в нем при­во­дим опцию mail_plugins к виду:

* в дан­ном при­ме­ре мы добав­ля­ем пла­гин sieve, кото­рый дол­жен теперь исполь­зо­вать­ся локаль­ным аген­том достав­ки lda.

Откры­ва­ем файл:

vi /etc/dovecot/conf.d/20-managesieve.conf

При­во­дим опцию protocols к сле­ду­ю­ще­му виду:

* по ана­ло­гии с protocol lda, мы ука­зы­ва­ем на необ­хо­ди­мость исполь­зо­ва­ния sieve.

Откры­ва­ем файл:

vi /etc/dovecot/conf.d/20-managesieve.conf

Необ­хо­ди­мо доба­вить стро­ки или убе­дить­ся, что они уже при­сут­ству­ют в таком виде:

* мы ука­зы­ва­ем, что наш сер­вис будет рабо­тать на пор­ту 4190.

Откры­ва­ем на редак­ти­ро­ва­ние файл:

vi /etc/dovecot/conf.d/90-sieve.conf

При­во­дим настрой­ки к виду:

* где:

  • 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:

* отдель­но ска­чи­вать пла­гин managesieve не тре­бу­ет­ся, так как он уже идет в стан­дарт­ной постав­ке с Roundcube.

Теперь мож­но пере­хо­дить в интер­фейс webmail. Захо­дим под любой поч­то­вой учет­ной запи­сью, кли­ка­ем по Настрой­ки и выби­ра­ем гото­вый набор филь­тров roundcube:

Свер­ху кли­ка­ем по Создать и зада­ем кри­те­рии, по кото­рым долж­но рабо­тать наше правило:

Кли­ка­ем по Сохра­нить.

Про­бу­ем отпра­вить тесто­вое пись­мо, что­бы оно попа­ло под пра­ви­ло (в нашем при­ме­ре, с темой Test). Про­ве­ря­ем, что пра­ви­ло отработало.