[8] Dovecot pigeonhole
5 lutego 2023Teraz, 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.