[8] Dovecot pigeonhole

5 lutego 2023 Wyłączono przez Adam [zicherka] Nogły

Teraz, gdy omówiliśmy spam i oprogramowanie antywirusowe, omówimy inny temat. A jest to filtrowanie i sortowanie wiadomości e-mail. Istnieje wiele innych opcji/programów, których można użyć do filtrowania i sortowania wiadomości e-mail, ale [pigeonhole] używa języka [Sieve] i jest bardzo wydajny oraz w miarę łatwy w konfiguracji.
Zainstalujmy go więc z pakietów.

root@vfbsd01:~ # pkg install dovecot-pigeonhole

Skopiujmy domyślne pliki konfiguracyjne:

root@vfbsd01:~ # cd /usr/local/etc/dovecot/conf.d
root@vfbsd01:/usr/local/etc/dovecot/conf.d # cp /usr/local/share/doc/dovecot/example-config/conf.d/*sieve*.conf .

Spowoduje to skopiowanie trzech plików do istniejących katalogów konfiguracyjnych [20-managesieve.conf], [90-sieve-extprograms.conf] i [90-sieve.conf]. Wprowadźmy następujące zmiany.
W [/usr/local/etc/postfix/main.cf] dodaj te linie na końcu.

root@vfbsd01:~ # mcedit /usr/local/etc/postfix/main.cf
# dodaj na końcu
# LMTP
virtual_transport = lmtp:unix:private/dovecot-lmtp

UWAGA DOTYCZĄCA UŻYTKOWNIKÓW WIRTUALNYCH
Gdy włączysz virtual_transport w [main.cf], postfixowi użytkownicy wirtualni nie będą mieli żadnego efektu. Od teraz wszyscy wirtualni użytkownicy są definiowani w pliku [/usr/local/etc/dovecot/users], a dostarczaniem poczty zajmie się dovecot.

Następnie przystąpimy do edycji następujących plików w [/usr/local/etc/dovecot/conf.d/]. Upewnij się, że parametry wyszczególnione poniżej są takie same jak w poniższych listingach.

root@vfbsd01:~ # mcedit /usr/local/etc/dovecot/conf.d/10-mail.conf
# linie 30-31: sprawdź
mail_home = /var/mail/vhosts/%d/%n
mail_location = maildir:~
# linia 115: sprawdź
mail_privileged_group = vpostfix

root@vfbsd01:~ # mcedit /usr/local/etc/dovecot/conf.d/10-master.conf
# linie 54-59: odkomentuj i zmień
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0666
user = postfix
group = postfix
}

root@vfbsd01:~ # mcedit /usr/local/etc/dovecot/conf.d/15-lda.conf
# linia 32: odkomentuj
recipient_delimiter = +
# linia 47: odkomentuj i zmień
mail_plugins = $mail_plugins sieve

root@vfbsd01:~ # mcedit /usr/local/etc/dovecot/conf.d/20-lmtp.conf
# linia 11: odkomentuj i zmień
lmtp_save_to_detail_mailbox = yes
# linie 37-41: odkomentuj i zmień
protocol lmtp {
# Space separated list of plugins to load (default is global mail_plugins).
postmaster_address = postmaster@zicher.lab
mail_plugins = $mail_plugins sieve
}

root@vfbsd01:~ # mcedit /usr/local/etc/dovecot/conf.d/90-sieve.conf
# linia 40: dodaj
recipient_delimiter = +

Teraz przejdź do katalogu poczty jednego z wirtualnych użytkowników:

root@vfbsd01:~ # cd /var/mail/vhosts/zicher.lab/adam/

i utwórz plik [.dovecot.sieve] z następującymi poleceniami Sieve w środku.

root@vfbsd01:/var/mail/vhosts/zicher.lab/adam # mcedit ./.dovecot.sieve
# utwórz nowy
require "fileinto";
if header :comparator "i;ascii-casemap" :contains "Subject" "***Spam***" {
fileinto "Junk";
stop;
}

Oznacza to, że jeśli nadejdzie wiadomość e-mail oznaczona jako [***Spam***] w temacie (tak jak skonfigurowaliśmy Spamasssassin), to zostanie ona przeniesiona do folderu [Junk] (upewnij się, że masz utworzony folder Junk IMAP) .
Zrestartuj zarówno Postfix, jak i Dovecot i wszystko gotowe.

root@vfbsd01:~ # service postfix restart
postfix/postfix-script: stopping the Postfix mail system
postfix/postfix-script: starting the Postfix mail system
root@vfbsd01:~ # service dovecot restart
Stopping dovecot.
Waiting for PIDS: 7290.
Starting dovecot.