sendmail(8) jest domyślnym agentem przekazywania poczty (ang. Mail Transfer Agent - MTA) w systemie FreeBSD. Zadaniem sendmaila jest odebranie przesyłki od programu klienta poczty (ang. Mail User Agent - MUA) i dostarczenie jej do odpowiedniego programu doręczającego zgodnie z kofiguracją. sendmail może również przyjmować połączenia sieciowe i dostarczać pocztę do lokalnych skrzynek pocztowych lub przesłać ją do innego programu.
sendmail wykorzystuje następujące pliki konfiguracyjne:
| Nazwa pliku | Funkcja |
|---|---|
| /etc/mail/access | baza danych kontroli dostępu |
| /etc/mail/aliases | baza aliasów |
| /etc/mail/local-host-names | lista nazw hostów/domen dla których sendmail akceptuje przesyłki |
| /etc/mail/mailer.conf | plik konfiguracyjny programu Mailer |
| /etc/mail/mailertable | tablica dostarczania programu Mailer |
| /etc/mail/sendmail.cf | główny plik konfiguracyjny sendmaila |
| /etc/mail/virtusertable | tablica wirtualnych użytkowników i domen |
Baza danych kontroli dostępu określa jakie hosty lub adresy IP mają dostęp do
lokalnego serwera poczty, oraz określa rodzaj tego dostępu. Adresy hostów zdalnych mogą
mieć parametry OK, REJECT, RELAY lub mogą zostać przekazane do procedury obsługi błędów sendmaila wraz z kodem błędu. Hosty z domyślnym parametrem OK mają prawo do przesyłania poczty do lokalnego hosta pod
warunkiem, że adresem docelowym przesyłki jest ten lokalny host. Wszystkie połączenia do
serwera poczty pochodzące od adresów hostów z parametrem REJECT są odrzucane. Hosty posiadające parametr RELAY mają prawo przesyłać pocztę do dowolnego odbiorcy przez
lokalny serwer poczty.
Przykład 26-1. Konfiguracja bazy danych kontroli dostępu sendmaila
cyberspammer.com 550 Nie przyjmujemy poczty od spamerow FREE.STEALTH.MAILER@ 550 Nie przyjmujemy poczty od spamerow another.source.of.spam REJECT okay.cyberspammer.com OK 128.32 RELAY
Przykład zawiera pięć wpisów. Nadawcy poczty pasujący do lewej strony tablicy są traktowani wg reguł określonych z prawej strony tablicy. Dwa pierwsze przykłady przekazują kod błędu do procedury obsługi błędów sendmaila. Komunikat jest wyświetlany hostom, których adres pasuje do adresu z lewej strony tablicy. Następny wpis odrzuca pocztę od hosta z adresem Internetowym another.source.of.spam. Kolejny wiersz akceptuje połączenia do serwera poczty z adresu okay.cyberspammer.com, który jest bardziej precyzyjnie określony niż adres cyberspammer.com w linii pierwszej. Bardziej precyzyjne określenia adresów przesłaniają adresy mniej precyzyjne. Ostatni wpis pozwala na przekazywanie poczty ze wszystkich adresów IP zaczynających się od 128.32. Wszystkie hosty z takim początkiem numeru IP mają możliwość przesyłania poczty za pomocą tego serwera poczty, adresowanej do innych serwerów.
Po aktualizacji tego pliku należy wywołać komendę make w katalogu /etc/mail/ w celu aktualizacji bazy danych.
Baza danych aliasów zawiara listę nazw wirtualnych skrzynek pocztowych przekazywanych do innych użytkowników, do plików, do programów lub do innych aliasów. Poniżej kilka przykładów, jakie mogą zostać użyte w pliku /etc/mail/aliases:
Przykład 26-2. Baza danych aliasów
root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail"
Format pliku jest prosty - z lewej strony nazwa aliasu, a następnie po dwukropku adres
docelowy. Pierwszy przykład zwyczajnie przekazuje pocztę konta root do skrzynki użytkownika localuser,
która to nazwa jest następnie również przeszukiwana w bazie aliasów. Jeżeli nie zostanie
znalezione żadne dopasowanie poczta jest przekazywana do lokalnego użytkownika localuser. Drugi wiersz zawiera przykład listy odbiorców. Poczta
adresowana do odbiorcy ftp-bugs jest przekazywana do trzech
skrzynek lokalnych użytkowników: joe, eric oraz paul. Należy pamiętać że
skrzynki zdalne powinny być określone pełną nazwą np <user@example.com>. Kolejny przykład pokazuje przekazanie
poczty do pliku, w tym przypadku /dev/null. Ostatni przykład
prezentuje przekazanie poczty do programu, tutaj wiadomość jest zapisana na standardowe
wejście programu /usr/local/bin/procmail poprzez potok systemu
UNIX®.
Kiedy plik zostanie zaktualizowany należy uruchomić polecenie make w katalogu /etc/mail/ w celu zaktualizowania bazy danych.
Plik /etc/mail/local-host-names zawiera listę nazw które sendmail(8) traktuje jako nazwy hosta lokalnego. Możemy umieścić tu dowolną nazwę hosta lub domeny dla której sendmail ma odbierać pocztę. Na przykład jeżeli nasz serwer poczty ma odbierać pocztę przeznaczoną dla domeny example.com oraz hosta mail.example.com, plik local-host-names powinien wyglądać następująco:
example.com mail.example.com
Po aktualizacji tego pliku wymagany jest restart sendmail(8) w celu odczytania przez niego wprowadzonych zmian.
Główny plik konfiguracyjny sendmaila -- sendmail.cf określa wszystkie aspekty pracy sendmaila począwszy od przepisywania adresów e-mail po wyświetlane komunikaty dla zdalnych serwerów poczty. Oczywiście, przy tak rozległej roli jaką spełnia ten plik, jest on bardzo skomplikowany i szczegóły jego konfiguracji wychodzą poza zakres tego podrozdziału. Na szczęście dla standardowej konfiguracji serwera poczty rzadko wymagana jest modyfikacja tego pliku.
Główny plik konfiguracyjny sendmaila może być zbudowany za pomocą zestawu makr m4(1) które definiują cechy i zachowanie sendmaila. Szczegóły opisane są w pliku /usr/src/contrib/sendmail/cf/README.
Aby zmiany poczynione w tym pliku przyniosły skutek należy zrestartować sendmaila.
Mapa użytkowników wirtualnych virtusertable odwzorowuje adresy poczty domen wirtualnych na rzeczywiste skrzynki pocztowe. Skrzynki te mogą być lokalne, zdalne, aliasy zdefiniowane w pliku /etc/mail/aliases lub pliki.
Przykład 26-3. Przykładowe odwzorowanie adresów domen wirtualnych
root@example.com root postmaster@example.com postmaster@noc.example.net @example.com joe
W powyższym przykładzie mamy odwzorowanie domeny example.com.
Plik map wirtualnych jest przetwarzany do napotkania pierwszego dopasowania, w kierunku
od góry do dołu. Pierwszy wiersz odwzorowuje adres <root@example.com> do lokalnej skrzynki użytkownika root. Kolejny wiersz odwzorowuje adres <postmaster@example.com> do skrzynki użytkownika postmaster na hoście noc.example.net. W
końcu jeżeli żadne dotychczasowe odwzorowanie nie zostało dopasowane, zostanie użyte
ostatnie dopasowanie które przekazuje wszelką pocztę adresowaną do kogokolwiek w domenie
example.com do lokalnej skrzynki pocztowej użytkownika joe.
| Poprzedni | Spis treści | Następny |
| Korzystanie z poczty elektronicznej | Początek rozdziału | Zmiana agenta przekazywania poczty MTA |
Ten i inne dokumenty można pobrać z ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
W przypadku pytań o FreeBSD prosimy przeczytać dostępną dokumentację przed kontaktem z <questions@FreeBSD.org>.
W sprawie zapytań o tę dokumentację prosimy o kontakt z <doc@FreeBSD.org>.