Konfiguracja sendmaila dostarczanego z FreeBSD jest przygotowana dla serwerów bezpośrednio połączonych z Internetem. Serwery, które będą wymieniać pocztę za pośrednictwem protokołu UUCP muszą mieć zainstalowaną inną wersję pliku konfiguracyjnego.
“Ręczna” modyfikacja pliku /etc/mail/sendmail.cf to sprawa bardzo skomplikowana. Od wersji 8 sendmail umożliwia generowanie plików konfiguracyjnych przez przetwarzanie m4(1) gdzie właściwa konfiguracja odbywa się na wyższym poziomie abstrakcji. Pliki konfiguracyjne można znaleźć w katalogu /usr/src/usr.sbin/sendmail/cf. Plik README w tym katalogu zawiera podstawowe wprowadzenie do konfiguracji m4(1).
Najlepszym sposobem na dostarczanie poczty za pomocą UUCP jest wykorzystanie właściwości mailertable. Powoduje ona utworzenie bazy danych, którą sendmail wykorzystuje do podejmowania decyzji o trasie dostarczania.
W pierwszej kolejności musimy utworzyć plik .mc. Katalog /usr/src/usr.sbin/sendmail/cf/cf zawiera kilka przykładów. Zakładając, że nazwaliśmy nasz plik foo.mc, wszystko co musimy zrobić aby przekonwertować go na poprawny plik konfiguracyjny sendmail.cf to wywołać polecenia:
# cd /usr/src/usr.sbin/sendmail/cf/cf # make foo.cf # cp foo.cf /etc/mail/sendmail.cf
Typowy plik .mc może przykładowo zawierać następujące wpisy:
VERSIONID(`Your version number') OSTYPE(bsd4.4) FEATURE(accept_unresolvable_domains) FEATURE(nocanonify) FEATURE(mailertable, `hash -o /etc/mail/mailertable') define(`UUCP_RELAY', your.uucp.relay) define(`UUCP_MAX_SIZE', 200000) define(`confDONT_PROBE_INTERFACES') MAILER(local) MAILER(smtp) MAILER(uucp) Cw your.alias.host.name Cw youruucpnodename.UUCP
Wiersze zawierajce właściwości accept_unresolvable_domains, nocanonify i confDONT_PROBE_INTERFACES blokują korzystanie z DNS podczas doręcznia poczty. Warunek UUCP_RELAY jest wymagany do dostarczania za pomocą UUCP. Wystarczy umieścić internetową nazwę hosta który obsługuje adresację pseudo-domen .UUCP. Najczęściej należy umieścić tam przekaźnik poczty naszego ISP.
Po utworzeniu pliku konfiguracyjnego potrzebny jest nam jeszcze plik /etc/mail/mailertable. Jeżeli mamy tylko jedno połączenie na zewnątrz używane dla wszystkich przesyłek pocztowych wystarczy wykonać polecenie:
# # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable . uucp-dom:your.uucp.relay
Bardziej złożony przykład mógłby wyglądać następująco:
# # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable # horus.interface-business.de uucp-dom:horus .interface-business.de uucp-dom:if-bus interface-business.de uucp-dom:if-bus .heep.sax.de smtp8:%1 horus.UUCP uucp-dom:horus if-bus.UUCP uucp-dom:if-bus . uucp-dom:
Pierwsze trzy wiersze zawierają specjalne przypadki, gdzie poczta adresowana do domeny nie powinna być wysyłana domyślną trasą ale do pewnego hosta-sąsiada UUCP w celu “skrócenia” drogi dostawy. Następna linia obsługuje pocztę do domeny w sieci lokalnej, która może być dostarczone za pośrednictwem protokołu SMTP. W końcu sąsiedzi-UUCP są wymienieni w notacji pseudo-domenowej .UUCP aby umożliwić sąsiadowi-UUCP !odbiorcy przesłonienie domyślnych reguł. Ostatnia linia zawsze zawiera pojedynczą kropkę, jako regułę pasującą do wszystkich innych hostów z dostarczaniem UUCP do sąsiada-UUCP, który służy nam jako uniwersalna brama pocztowa na świat. Wszystkie nazwy węzłów po słowie kluczowym uucp-dom: muszą być poprawnymi sąsiadami-UUCP, co można sprawdzić za wykorzystując polecenie uuname.
Należy pamiętać o konwersji tego pliku do formatu bazy danych DBM. Polecenie, które to zrealizuje najlepiej umieścić w komentarzu na początku pliku mailertable. Po każdej zmianie zawartości pliku należy uruchomić to polecenie aby zmiany przyniosły skutek.
Ostatnia wskazówka: jeżeli nie jesteśmy pewni czy jakaś szczególna trasa pocztowa
zadziała należy pamiętać o opcji -bt sendmaila. Uruchamia ona program sendmail w trybie
testowania adresów. Wystarczy wprowadzić 3,0, a
następnie adres którego trasę chcemy sprawdzić. Ostatnia linia poinformuje nas o użytym
wewnętrznym agencie poczty, hoście przeznaczenia z którym zostanie wywołany ten agent
oraz (prawdopodobnie przetłumaczony) adres. Tryb ten możemy opuścić za pomoc kombinacji
klawiszy Ctrl+D.
% sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 3,0 foo@example.com canonify input: foo @ example . com ... parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . > > ^D
| Poprzedni | Spis treści | Następny |
| Zagadnienia zaawansowane | Początek rozdziału | Konfiguracja tylko do wysyłania |
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>.