Zabawy z procmailem

Spis treści

Przy okazji migracji kolejnego klienta pojawiła się potrzeba przeniesienia danych z jego skrzynek pocztowych bez danych w postaci mailboxów. Oczywiście po odrobinie szukania trafiłem na dobrze wszystkim znany i lubiany procmail 🙂

Co to jest ?

procmail jak sama nazwa wskazuje to zabawka ktora pozwala na pobieranie maili z innych skrzynek. Zawodowi Linuksiarze / Uniksiarze korzystają z niego aby pobrać pocztę z obcych kont (POP3 / IMAP ) i innych na swój lokalny serwer i tam czytać np. za pomocą mutta.

Inne systemy (zwykle do zarządzania hostingiem itp) korzystają z procmaila jako z narzędzia do celów wszelakich, bo potrafi on pobierać i skanować pocztę np. pod kątem SPAMu czy innych syfów. Jak widać procmail ma wiele porzytecznych zastosowań.

Jak to się je ?

Instalacja nie nastręcza nam wiele problemów i pytań
apt-get installfetchmail

dla Debiana i

cd /usr/port/mail/fetchmail [ make install clean

dla FreeBSD. Po instalacji możemy się zabrać do tworzenia pliku konfiguracyjnego. Z racji na “zwykłe” zastosowania procmaila zaleca sięutworzenie pliku .fetchmailrc w katalogu domowym użytkownika, ale my będzie kombinować inaczej. Procmail ma pobrać jedynie pocztę z starej skrzynki i podrobić ją na skrzynce użytkownika na naszym serwerze. Dlatego też nazwa pliku niekoniecznie musi być .fetchmailrc.

Zawartość tego pliku powie procmailowi skąd ma pobierać i gdzie kierować. Składnia jest bajecznie prosta, przypomina słowo “mówione” oczywiście w języku angielskim. Poniżej mały przykład:
[ poll ___nazwa_lub_ip_serwera___ proto pop3: [ username "___nazwa_uzytkownika", with password "__haslo__" is "__adres_docelowy__" here; [
czyli dla przykładu
[ poll pop.o2.pl proto pop3: [ username "admin@o2.pl, with password "tajneprzepoufne" is "admin@wp.pl" here; [
Czyli pobieraj z serwera pop.o2.pl protokołem pop3 dla użytkownika xxx z hasłem yyy jako zzz tutaj (w znaczeniu lokalnie). Teraz warto sprawdzić czy nam wszystko działa wydając polecenie procmail -f .procmailrc -v -c

istotne parametry -c – tylko sprawdzamy, -f wskazujemy nazwę pliku z którego czytamy konfigurację, -v dodatkowa weryfikacja (verbose) jeżeli nie pojawiły nam się błędy można odpalić procmaila pełną gębą:

fetchmail -f .procmailrs

jeżeli nie chcemy kasować poczty z serwera źródłowego warto dodać opcję -k. Warto zwrócić uwagę na to, że procmaila nie uruchomimy z poziomu roota 🙂