Частина 15. Керування поштовими повідомленнями в Dovecot. Sieve

 До переліку статей циклу

 

Для керування листами в Dovecot включена підтримка Sieve.

Sieve — це мова опису правил фільтрації для поштових повідомлень. Створена компанією Cyrusoft International, Inc./ISAMET під час роботи над поштовим сервером Cyrus. За допомогою написання скриптів з правилами обробки пошта є можливість:

  1. автоматично сортувати листи по поштовим текам виходячи з певних ознак (адреса відправника, тема та ін.)

  2. автоматично видаляти листи виходячи з певних ознак

  3. налаштувати автоматичну відповідь (vacation) на певні листи

 

Обробка листів має відбуватися перед тим, як лист потрапляє в поштову скриньку користувача. В тих налаштуваннях агентом локальної доставки (LDA – local delivery agent) виступає сам Postfix. Для підключення розширення Sieve цей функціонал треба перекласти на Dovecot.

 

Налаштування Dovecot як LDA

Для роботи Dovecot в якості LDA треба встановити пакет підтримки lmtp командою:

# apt install dovecot-lmtpd

 

В самому Dovecot налаштовувати нічого не треба.

Далі налаштовуємо Postfix. Вносимо зміни в конфіг Postfix.

В файл /etc/postfix/main.cf додаємо рядки:

 

#як локальний транспорт (для протоколу lmtp) будемо використовувати фільтр під

#назвою dovecot (ім'я фільтра вибираємо довільно)

virtual_transport = dovecot

dovecot_destination_recipient_limit = 1 #доставляємо листи по одному

 


Також в файлі /etc/postfix/master.cf потрібно описати фільтр під назвою dovecot (ім'я задано раніше в файлі main.cf). Для цього в кінець файлу додаємо рядки опису нашого фільтру:

# Dovecot LDA

dovecot unix - n n - - pipe

flags=DRhu user=virtual:virtual argv=/usr/lib/dovecot/dovecot-lda -f ${sender} -a ${original_recipient} -d ${user}@${nexthop}}

#доставка листів буде проводиться з правами virtual:virtual за допомогою утиліти

#/usr/lib/dovecot/dovecot-lda

Після цих налаштувань у нас з'явилася можливість підключити Sieve.

 

 

Підключення розширення Sieve до Dovecot

Встановлюємо для Dovecot розширення Sieve

# apt install dovecot-sieve dovecot-managesieved

dovecot-sieve — цей пакет дає можливість використовувати функціонал Sieve

dovecot-managesieved — цей пакет дає можливість клієнту створювати правила фільтрації самостійно.

Файл конфігурації dovecot-managesieved залишаємо без змін, так як він нас влаштовує і приступаємо до налаштування самого sieve.

Спочатку в основному файлі конфігурації Dovecot включимо підтримку Sieve. Для цього в файлі /etc/dovecot/dovecot.conf рядок protocols приводимо до вигляду:

protocols = imap sieve

 

В налаштуваннях LDA підключаємо підтримку Sieve, для цього в файлі /etc/dovecot/conf.d/15-lda.conf блок protocol lda приводимо до вигляду:

protocol lda {
# Space separated list of plugins to load (default is global mail_plugins).
mail_plugins = $mail_plugins sieve
}

 

Підключаємо цей же плагін до протоколу LMTP. Для цього в файлі /etc/dovecot/conf.d/20-lmtp.conf
блок protocol lmtp приводимо до вигляду:
protocol lmtp {
# Space separated list of plugins to load (default is global mail_plugins).
mail_plugins = $mail_plugins sieve
info_log_path = /var/log/dovecot-lmtp.log
}

 

Тепер налаштовуємо місце розташування скриптів правил Sieve для користувачів. Для цього в файлі /etc/dovecot/conf.d/90-sieve.conf змінюємо відповідні рядки і приводимо їх до вигляду:

sieve = /var/mail/sieve/%Ld/%n/sieve/%u.sieve # Розташування активного скрипту

sieve_dir = /var/mail/sieve/%Ld/%n/sieve

# Тека для скриптів — це бібліотека скриптів з правилами

 

Для коректної роботи обидва параметри повинні бути унікальні для кожного користувача. При вказуванні шляху можна використовувати внутрішні змінні Dovecot:

  • %Ld — це частина логіна користувача, що відповідає поштовому домену
  • %n — це частина логіна користувача до собаки, тобто ім'я клієнта
  • %u — це повний логін користувача

 

Також треба створити відповідну теку та визначити їй права

# mkdir /var/mail/sieve/

# chown virtual:virtual /var/mail/sieve/

# chmod 770 /var/mail/sieve/

 

Після всіх цих дій, обробка і створення правил може бути виконана лише адміністратором поштового сервера шляхом правки скриптів. Набагато зручніше дати користувачам можливість самим створювати власні правила.

 

Підключення плагіна managesieve в RoundCube

Спочатку встановимо набір плагінів для RoundCube командою:

# apt install roundcube-plugins

 

Далі йдемо в /etc/roundcube/plugins/managesieve і бачимо, що файл конфігурації порожній, але в ньому є вказівка, де взяти його зразок.

Виконуємо команду

cp /usr/share/roundcube/plugins/managesieve/config.inc.php.dist /etc/roundcube/plugins/managesieve/config.inc.php

Цією командою створюємо файл конфігурації зі зразка і починаємо налаштування.

 

Знаходимо відповідні рядки та змінюємо їх відповідно до нашого сервера:

$config['managesieve_port'] = 4190; #вказуємо порт для сервера managesieve

$config['managesieve_host'] = 'localhost'; # вказуємо де знаходиться сервер

#managesieve

$config['managesieve_auth_type'] = login; # вказуємо тип авторизації на сервері.

#Цей параметр беремо з налаштувань Dovecot

$config['managesieve_usetls'] = false; #відключаємо підтримку шифрування

 

Далі в файлі /etc/roundcube/config.inc.php підключаємо плагін managesieve.

Для цього знаходимо рядок і приводимо до вигляду:

$config ['plugins'] = array ('managesieve');

 

Після цих налаштувань в RoundCube в інтерфейсі користувача на сторінці налаштувань з'являється закладка filters, де і створюються правила обробки пошти

 

 

 До переліку статей циклу

 

Підтримайте, будь ласка автора

та придбайте книгу

"Налаштування поштового

сервера на базі Postfix, Dovecot

та RoundCube"

В електронному вигляді

Придбати