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

Налаштування поштового сервера на базі Postfix, Dovecot та RoundCube. Зміст



Для керування листами в 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. Зміст

Возврат к списку