Poczta z konsoli

Bardzo wielu użytkowników zastanawia się jak korzystać z tekstowego programu pocztowego np. Mutt`a. W tym tekście postaram się opisać co zrobić, aby przystosować Linuxa do pracy w charakterze serwera poczty oraz kilka wskazówek jak można szybko i bezboleśnie zacząć korzystać z tego programu.

Aby odbierać i wysyłać pocztę spod konsoli musimy zainstalować i skonfigurować kilka rzeczy. Będzie to nasz lokalny serwer poczty, program obierający pocztę z kont POP oraz program pocztowy odpowiedzialny za tworzenie i edycje maili.

ETAP 1

Zaczniemy od serwera poczty:
Polecam pozbycie się Sendmaila (który zapewne jest w Twoim systemie) i zainstalowanie programu o nazwie Postfix (patrz: ramka 1).

rpm -e sendmail

lub

rpm -e --nodeps sendmail

jeśli występują powiązania sendmaila z innymi programami (np. mutt) i nie możemy go usunąć :-)

Po chwili powinniśmy dostać system gotowy do zainstalowania nowego systemu pocztowego, którym będzie wspomniany Postfix. Ściągamy go z www.postfix.org jako źródełka bądź rpm`y. Tutaj skupię się na instalacji programu z rpm`a:

Gdy mamy już na dysku plik postfix-XXX.rpm instalujemy go poprzez wpisanie:

rpm -i postfix-XXX.rpm

(gdzie XXX to oczywiście nr wersji). Jeśli wszystko przebiegało bez zakłóceń możemy uruchomić Postfix komendą:

/usr/sbin/postfix start

lub jeśli mamy RedHata

/etc/rc.d/init.d/postfix start

I oto mamy działający nowy system pocztowy. Czas na jego skonfigurowanie. Załóżmy, ze nasz komputer nie jest na stale podłączony do Internetu (np. połączenie z Tpsa) i nie chcemy tracić czasu na rozsyłanie poczty przez naszego Linuxa. Nasz komputer będzie tylko przekazywał (relayowal) naszą pocztę wychodzącą na serwer naszego providera i on dalej zajmie się dystrybucją poczty po świecie. Aby osiągnąć cel edytujemy plik main.cf znajdujący się w katalogu /etc/postfix. W pliku tym powinna się pojawić linijka o takiej treści:

relayhost=nasz.serwer.pocztowy

Oczywiście za nasz.serwer.pocztowy wstawiamy odpowiedni adres naszego providera.

UWAGA: Nie wszystkie serwery pozwalają na relayowanie listów jeśli nie ma się u nich konta!

To wszystko, od teraz poczta będzie wędrować do nasz.serwer.pocztowy, a ten dalej zajmie się rozesłaniem poczty.

Następna ważna sprawa to ustawienie prawidłowo pola From: dla listów wychodzących z naszego serwera. Jest to ważne gdy ktoś będzie chciał nam odpowiedzieć na list (istnieje też reply-to, ale to inna bajka), lub po to, by nasz relay wrzucał na nasze konto informacje o nie dotarciu poczty do adresata.
Do pliku main.cf dopisujemy:

canonical_maps=hash:/etc/postfix/canonical

Następnie w katalogu /etc/postfix tworzymy plik canonical (jeśli nie istnieje :-)) i wpisujemy do niego sekwencje wg przykładu:

nasze@konto.lokalne nasz@adres.u.providera

A teraz już na rzeczywistych adresach:

artur@localhost.localdomain arturoza@send.pl
root@localhost.localdomain arturoza@send.pl
juras@localhost.localdomain jpeczak@poczta.onet.pl

Nie ważne z jakiego konta wysyłam pocztę (artur czy root) poczta i tak ma w adresie wychodzącym adres konta u mojego providera. Analogicznie gdy pisze mój wuj (z konta juras) to jego poczta ma adres jpeczak@poczta.onet.pl.

To już wszystko odnośnie Postfixa, teraz pozostaje nam zrestartowanie go i testowanie czy działa!!!. Proponuję wysyłać pocztę do siebie na lokalne konta i sprawdzać czy mają poprawnie ustawione pola From:!

Jeśli pisaliśmy listy bez połączenia z netem i chcemy je wysłać gdy mamy połączenie wpisujemy:

postfix flush

ETAP 2

Teraz nadszedł czas, aby pobrać pocztę z naszego konta POP na nasz domowy komputer. Wykorzystamy do tego celu program Fetchmail, który może pobierać pocztę z wielu skrzynek pocztowych jednocześnie. Rozesłaniem poczty do lokalnych użytkowników zajmie się Procmail.

Plikiem konfiguracyjnym Fetchamaila jest plik .fetchmailrc, który powinien znaleźć się w naszym katalogu domowym. Poniżej podam taki przykładowy plik i postaram się wyjaśnić znaczenie poszczególnych jego części.

set postmaster "artur"

#konto 1 na send.pl

poll mail.sky.pl with proto POP3

# poczta będzie pobierana z konta na serwerze
# mail.sky.pl przy użycie protokołu POP3

user "arturoza"

# nasz login

password "chcieli.byscie.wiedziec"

# no i nasze hasełko

mda "/usr/bin/procmail -f %F -d artur"

# tutaj rolę przejmuje Procmail który przekazuje pocztę
# przychodzącą z tego konta na lokalne konto artur
# (zazwyczaj do kat. /var/spool/mail)

To byłby normalny plik konfiguracyjny, jeśli chcemy pobierać pocztę z kilku kont wystarczy wpisać je wszystkie w tym pliku wg zasady powyżej. Jeśli chcemy pozostawić pocztę na koncie dodajemy opcję:

keep

 

ETAP 3

No to mamy już pocztę w naszym komputerze (w pliku /var/spool/mail/nasz.login), trzeba tylko ją odczytać, Do tego celu użyjemy programu Mutt, który standardowo odczytuje ten właśnie plik. Najpierw skonfigurujmy Mutta tak by działał tak jak chcemy:

Kopiujemy do naszego katalogu domowego plik sample.muttrc, który zawarty jest w dokumentacji programu i nadajemy mu nazwę .muttrc. Nie będę się tutaj zajmował całym plikiem, lecz podam kilka najważniejszych opcji:

set attribution="Dnia %d, %n napisał:"

# Tutaj podajemy to co ma pojawiać się gdy odpisujemy
# na dany list, %d oznacza datę, %n nadawcę,

set charset="iso-8859-2"

# Musimy poprawnie zakodować nasze listy

set folder="~/Mail"

# Miejsce gdzie Mutt szuka skrzynek pocztowych,
# warto sortować listy i umieszczać je
# w osobnych skrzynkach,

set realname="Artur Pęczak"

# Nasze imię, nazwisko, pseudo itp.,

set signature="~/.signature"

# Wstawia automatycznie podpis z pliku .signature

Może poustawiamy kolorki? Oto bardzo fajna konfiguracja, którą dostałem od mojego kumpla, dzięki Rychu!

color indicator black cyan 
color status brightgreen blue 
color hdrdefault cyan black 
color header brightgreen black ^From: 
color header brightcyan black ^To: 
color header brightcyan black ^Reply-To: 
color header brightcyan black ^Cc: 
color header brightblue black ^Subject: 
color body brightred black [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+ 
color body brightblue black (http|ftp)://[\-\.\,/%~_:?\#a-zA-Z0-9]+ 
color quoted green black 
color attachment brightyellow black 
color signature cyan black 
color tree red black 
color tilde blue black 
color markers brightred black 

No to mamy już skonfigurowanego Mutta, czas zacząć go używać. W linii poleceń wpisujemy mutt i naszym oczom ukazuje się estetyczny, choć na pierwszy rzut oka nieprzyjazny interfejs! (szczególnie gdy w naszej skrzynce nie ma listów!). Jeśli masz w systemie poprawnie ustawione locale to Mutt powinien "przemówić" po polsku!

Czytanie poczty:

Jeśli ściągamy pocztę programem Fetchmail zostaje ona umieszczona w pliku /var/spool/mail/nasz.login. Właśnie tam Mutt zaczyna szukać nowych listów i jeśli je znajdzie wyświetla ich nagłówki jeden pod drugim. Aby przeczytać wybrany listy wystarczy kliknąć enter. Jeśli list nie mieści się na ekranie to aby przesunąć jego zawartość dalej operujemy enterem.

UWAGA: klawisze kursora przenoszą nas do następnych (poprzednich) listów, nie operuje się nimi gdy chcemy zobaczyć dalsza cześć tego samego listu!

Zachowywanie listów:

Niektóre listy chcielibyśmy zachować, tak by można było do nich wrócić. Wciskamy klawisz s i możemy podać nazwę pliku (skrzynki) do której list zostanie zapisany lub wcisnąć ? i wybrać listę dostępnych skrzynek (gdzie Mutt zapisuje swoje skrzynki ustawiamy w pliku konfiguracyjnym). Jeśli wcześniej korzystaliśmy z innego programu pocztowego możemy wykorzystać jego skrzynki i tam zapisywać naszą pocztę.

Wysyłanie:

Aby napisać list wciskamy m i ukazuje się nam pole To: wpisujemy w nie e-mail odbiorcy. Dalej program prosi nasz o podanie tematu listu i uruchamia edytor tekstu w którym będziemy mogli napisać treść listu. [Zobacz też Ramka 3]. Wyedytowaną treść listu zapisujemy i wychodzimy z edytora tekstu. Możemy poprawić parametry listu i jeśli wszystko jest Ok wciskamy y. Jeśli mamy połączenie list powinien zostać wysłany przez nasz system pocztowy, gdy takowego połączenia nie ma, list zostaje umieszczony w kolejce Postfixa i pozostanie wysłany wtedy gdy wpiszemy postfix flush (oczywiście jak będziemy mieli połączenie).

Aliasy:

Jeśli chcemy sobie ułatwić życie, możemy skorzystać z aliasów. Aby utworzyć szybko nowy alias wciskamy a, podajemy nazwę aliasu, adres pocztowy osoby do której ma dotrzeć poczta wysyłana gdy wpiszemy alias oraz prawdziwe imię i nazwisko. Możemy to robić szybciej gdy wciśniemy a na liście od osoby do której chcemy alias utworzyć, dane pojawią się same (będzie je można pozmieniać oczywiście). Aby skorzystać z aliasów możemy do pola To: wpisać pierwszych klika liter aliasu i stuknąć TAB, wtedy powinna się pojawić pełna nazwa aliasu, bądź bez wpisywania niczego wciskamy TAB i dostajemy pełną listę dostępnych aliasow!

Odpowiadanie:

Aby odpowiedzieć na dany list wciskamy r.

ETAP 4

To już wszystko, jeśli opis pomógł Ci w rozwiązaniu jakiegoś problemu proszę napisz do mnie :-) Napisz także jeśli widzisz jakieś błędy, bądź masz jakieś uwagi, sugestie. Czekam na listy pod adresem: arturoza@send.pl

ps. Zapewne istnieją rozwiązania lepsze i szybsze, ale to najbardziej mi się spodobało, jest przejrzyste i warte polecenia.



RAMKA 1:

Postfix jest alternatywnym w stosunku do Sendmaila serwerem poczty. Jest mały, szybki, łatwy w administracji, bezpieczny i co najważniejsze - zgodny z Sendmaiem. Jego zalety docenia wielu administratorów i instaluje go na swoich serwerach. Przykładem może być serwer mailowy firmy SKY-Net www.sky.pl, na którym działa właśnie Postfix i bardzo dobrze rozsyła listy, bo sam mam tam konto :-)



RAMKA 2:

Mutt jest małym, ale bardzo wydajnym programem do obsługi poczty elektronicznej w systemach unixowych. Obsługuje kolorowe terminale, MIME, wątkowanie. Jeśli opanuje się jego obsługę stanie się profesjonalnym narzędziem, w profesjonalnych rękach.



RAMKA 3:

Mutt uruchamia do edycji listu domyślny w naszym systemie edytor tekstu. Zazwyczaj jest to vi, ale początkujący mają z nim problemy i nie wiedzą co się w ogóle dzieje. Można nauczyć się korzystać z vi, bądź podać inny standardowy (i zarazem łatwiejszy) edytor tekstu. Proponuje Mcedit. Aby go ustawić jako domyślnego (dla całego systemu!) w pliku /etc/profile musimy wyeksportować zmienna EDITOR.

export EDITOR=mcedit

Teraz wystarczy tylko załogować się poprawnie na konto i defaultowym edytorem będzie mcedit.

Artur Pęczak
arturoza@send.pl


Copyright 2001 by magazyn @t.Wszelkie prawa zastrzeżone.