Jak włączyć i używać procmaila?
Procmail jest programem służącym do filtrowania poczty, przenoszenia jej do odpowiednich katalogów na poziomie serwera oraz odfiltrowywania wiadomości spamowych. Procmaila można stosować wyłącznie dla głównych kont mailowych (systemowych), które zakładane są automatycznie przy uruchamianiu usługi na serwerze.
Aby włączyć procmail na usłudze należy:
- w katalogu głównym utworzyć plik .forward,
- ustawić prawa do pliku na 600 (- rw - - - - - - -),
- ustawić właściciela i grupę - plik musi należeć do użytkownika.
w pliku .forward należy zapisać polecenie:
| /usr/bin/procmail
Następnie należy utworzyć plik o nazwie .procmailrc, w którym zapisywane będą reguły dotyczące filtrowania poczty.
Przykład reguły filtrującej
Reguła filtrowania składa się z poleceń pisanych w oddzielnych liniach. Każda nowa reguła zaczyna się od znaków :0. Kolejne linie zawierają warunki i zaczynają się one od znaku gwiazdki *. W pojedynczej regule możemy zapisać kilka warunków - każdą w nowej linii. W ostatnim wierszu znajduje się tzw. akcja, czyli polecenie decydujące co zrobić z wiadomością, która spełnia wszystkie warunki.
:0 *^From:.*marketing@twojadomena.pl /home/uzytkownik/Maildir/.marketing/new
Powyższa reguła sprawdza czy nadawcą wiadomości jest marketing@twojadomena.pl, jeżeli tak, to wiadomość jest przenoszona do katalogu /home/uzytkownik/Maildir/.marketing/new. Jeżeli zamiast katalogu new, na serwerze utworzony jest plik o nazwie new, to wiadomość zostanie zapisana do pliku.
Podobną regułę możemy wykorzystać, gdy do jednego konta e-mail mamy przypisanych kilka aliasów i chcemy aby poczta trafiała do odpowiednich katalogów np.:
:0 *^To:.*zamowienia@twojadomena.pl /home/uzytkownik/Maildir/.zamowienia/new :0 *^To:.*marketing@twojadomena.pl /home/uzytkownik/Maildir/.marketing/new
W powyższym przykładzie filtr przenosi wiadomości do odpowiednich katalogów w zależności od tego na jaki adres zostały wysłane. I tak poczta wysłana na adres zamowienia@twojadomena.pl przenoszona jest automatycznie do katalogu /home/uzytkownik/Maildir/.zamowienia/new, a poczta wysłana na adres marketing@twojadomena.pl do katalogu /home/uzytkownik/Maildir/.marketing/new.
Procmail sprawdzając daną wiadomość przetwarza plik reguł (.procmailrc), aż napotka na regułę pasującą do danej wiadomości i wykonuje przypisaną do niej akcję, a następnie przerywa sprawdzanie. Aby wymusić dalsze sprawdzanie należy w pierwszej linii reguły dopisać flagę c, co spowoduje sprawdzenie kolejnej reguły.
:0 c *^From:.*sklep@twojadomena.pl /home/uzytkownik/Maildir/.sklep/new :0 *^From:.*sklep@twojadomena.pl *^Subject:.*zamówienie ! kopia@twojadomena.pl
Powyższa reguła sprawdza czy wiadomość została wysłana z adresu sklep@twojadomena.pl, a następnie wykonuje kolejną regułę sprawdzając czy dodatkowo w temacie wiadomości występuje słowo zamówienie. Jeżeli wszystkie warunki są spełnione, to wiadomość przesyłana jest na adres kopia@twojadomena.pl. W powyższym przykładzie w linii z akcją został użyty znak wykrzyknika !, pozwala on na przesłanie wiadomości na inne konto e-mail.
Poza przenoszeniem wiadomości do odpowiednich katalogów i przesyłania ich na dodatkowe adresy e-mail, możemy również usuwać wiadomości. Opcja usuwania przydatna jest w przypadku filtrowania wiadomości spamowych. Usuwanie wiadomości polega na przeniesieniu ich do urządzenia /dev/null.
:0 *^Subject:.*(praca|zarabianie|inwestycje) /dev/null
Powyższy przykład sprawdza czy w temacie wiadomości nie występują słowa praca, zarabianie lub inwestycje, jeżeli któreś ze słów kluczowych występuje - wiadomość przenoszona jest do urządzenia /dev/null (jest usuwana).
Zapisując warunki możemy korzystać z wyrażeń regularnych, co pozwala na dokładniejsze filtrowanie wiadomości, a jednocześnie zmniejszenie liczby reguł.