Jak włączyć i używać imapfilter?
Imapfilter jest programem służącym do filtrowania poczty na zdefiniowanych w konfiguracji kontach pocztowych. Aby uruchomić program filtrujący konieczne jest utworzenie pliku konfiguracyjnego o nazwie config.lua, który powinien znajdować się w katalogu: /home/uzytkownik/.imapfilter/. Katalog oraz plik można umieścić na serwerze przez FTP lub używając połączenia ssh do konsoli serwera.
mkdir /home/uzytkownik/.imapfilter/ touch /home/uzytkownik/.imapfilter/config.lua
W pliku konfiguracyjnym definiujemy opcje programu, skrzynki e-mail jakie będzie obsługiwał imapfilter oraz reguły filtrowania:
--Opcje-- options.timeout = 60 options.namespace = true options.charset = 'utf8' --Konta pocztowe-- konto1 = IMAP { server = 'localhost', username = 'imie.nazwisko@twoadomena.pl', password = 'xxxxxx', } --Konta pocztowe połączenie z wykorzystaniem ssl-- konto2 = IMAP { server = 'localhost', username = 'inneimie.innenazwisko@twoadomena.pl', password = 'xxxxxx', ssl = 'tls1', }
W celu odróżnienia przypisanych kont ustawia się identyfikator kont, w tym przypadku jest to konto1 dla pierwszej skrzynki e-mail i konto2 dla drugiej skrzynki. W programie możemy zdefiniować dowolną liczbę skrzynek pocztowych.
Reguły w programie imapfilter składają się z dwóch części - warunku (pojedynczego lub złożonego) i akcji, jaka ma zostać wykonana:
regula = konto1.INBOX:contain_to('sklep@twojadomena.pl') regula:move_messages(konto1.Sklep)
Powyższy przykład sprawdza czy w katalogu INBOX (katalog „odebrane”) znajdują się wiadomości, które były przysłane na adres sklep@twojadomena.pl. Jeżeli tak, to wiadomość przenoszona jest do katalogu Sklep na tej samej skrzynce pocztowej.
Aby utworzyć warunek złożony wykorzystuje się operatory logiczne OR, AND oraz NOT:
+ (OR) - lub * (AND) - i – (NOT) - nie
Przykład użycia operatorów:
regula = konto1.INBOX:contain_from('zamowienia@twojadomena.pl') * konto1.INBOX:contain_subject('test') regula:move_messages(konto1.Test)
W powyższym przykładzie sprawdzany jest adres nadawcy wiadomości i temat. Jeżeli wiadomość wysłana została z adresu zamowienia@twojadomena.pl i w tytule występuje słowo test, to wiadomość przenoszona jest do katalogu Test.
Za pomocą programu imapfilter można również przenosić wiadomości pomiędzy kontami np.:
regula = konto1.INBOX:contain_from('sklep@twojadomena.pl') results:move_messages(konto2.INBOX)
Reguła sprawdza czy na pierwszej skrzynce e-mail (konto1) jest jakaś wiadomość wysłana z adresu sklep@twojadomena.pl. Jeżeli tak, to przenoszona jest ona na drugą zdefiniowaną skrzynkę e-mial (konto2), do katalogu poczty przychodzącej (INBOX).
Poniżej przykładowe warunki:
--Filtrowanie wiadomości po adresie nadawcy-- regula = konto1.INBOX:contain_from('marketing@twojadomena.pl') --Filtrowanie wiadomości po temacie z użyciem wyrażeń regularnych-- regula = konto1.INBOX:match_from('.*@twojadomena.pl') --Filtrowanie wiadomości po adresie odbiorcy-- regula = konto1.INBOX:contain_to('marketing@twojadomena.pl') --Filtrowanie wiadomości po temacie-- regula = konto1.INBOX:contain_subject('Nowe zamówienie') --Filtrowanie wiadomości po treści-- regula = konto1.INBOX:contain_body('Nowe zamówienie') --Filtrowanie wiadomości nowych nie przeczytanych-- regula = konto1.INBOX:is_new() --Filtrowanie wiadomości nie przeczytanych-- regula = konto1.INBOX:is_unseen() --Filtrowanie wiadomości starszych niż 30 dni-- regula = konto1.INBOX:is_older(30)
oraz akcje jakie można wykonać:
--Kopiowanie wiadomości-- regula:copy_messages(konto1.INBOX) --Przeniesienie wiadomości-- regula:move_messages(konto1.INBOX) --Usunięcie wiadomości-- regula:delete_messages() --Oznaczenie wiadomości jako przeczytane-- regula:mark_seen()
Uruchomienia programu imapfilter
Program - po zdefiniowaniu pliku konfiguracyjnego z danymi skrzynki e-mail oraz reguł filtrujących - możemy uruchomić poleceniem:
imapfilter -v
Opcja -v powoduje wyświetlenie na ekranie wszystkich operacji wykonywanych przez program, co pozwoli na weryfikację poprawności zdefiniowanych reguł w pliku konfiguracyjnym.
W celu zautomatyzowania zadań filtrowania poczty, uruchamianie programu możemy zdefiniować w harmonogramie zadań cron, za pośrednictwem panelu serwera.
*/2 * * * * /usr/bin/imapfilter >/dev/null 2>&1