.

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