[ Pobierz całość w formacie PDF ]
.324 Rozdzia³ 18: SendmailIstniej¹ inne przydatne, ale rzadziej u¿ywane protoko³y, takie jakpop,procmail,mail11,phqueryi cyrus.Je¿eli obudziliSmy twoj¹ ciekawoSæ, mo¿esz poczytaæna ich temat w ksi¹¿ce o sendmailu lub w dokumentacji dostarczanej w pakiecie koduxród³owego.Konfigurowanie rutingu poczty dla hostów lokalnychNasz przyk³ad konfiguracji browaru wirtualnego jest zapewne bardziej skompliko-wany ni¿ konfiguracja wiêkszoSci rzeczywistych oSrodków.Obecnie najczêScieju¿ywa siê tylko SMTP i ma³o kto interesuje siê UUCP.W naszej konfiguracjiuwzglêdniliSmy inteligentny host , który jest u¿ywany do obs³ugi ca³ej poczty wy-chodz¹cej.Poniewa¿ u¿ywamy transportu SMTP w naszej sieci lokalnej, musimypoinformowaæ sendmaila, ¿eby nie wysy³a³ poczty lokalnej przez inteligentnego ho-sta.MakroLOCAL_NET_CONFIGpozwala wstawiaæ regu³y bezpoSrednio do plikuwynikowego sendmail.cf i w ten sposób modyfikowaæ obs³ugê poczty lokalnej.Wkrót-ce powiemy wiêcej na temat regu³ podstawiania, ale w tej chwili powinieneS tylkowiedzieæ, ¿e dodana w naszym przyk³adzie regu³a mówi, ¿e poczta przeznaczonadla hostów w domenie vbrew.com powinna byæ dostarczana bezpoSrednio do hostaadresata za pomoc¹ protoko³u SMTP.Generowanie pliku sendmail.cfGdy skoñczysz edycjê pliku konfiguracyjnego m4, musisz go przetworzyæ, by wyge-nerowaæ plik /etc/mail/sendmail.cf odczytywany przez sendmaila.Jest to proste, jak wi-daæ na poni¿szym przyk³adzie:# cd /etc/mail# m4 /usr/share/sendmail.cf/m4/cf.m4 vstout.uucpsmtp.mc >sendmail.cfTo polecenie wywo³uje makroprocesor m4, któremu dostarcza siê nazwy dwóch ma-krodefinicji do przetworzenia.m4 przetwarza pliki w podanej kolejnoSci.Pierwszyplik to standardowe makro wzorców sendmaila dostarczane w pakiecie kodu xród-³owego, a drugi to oczywiScie plik zawieraj¹cy twoje w³asne makrodefinicje.Wynikpolecenia jest przekierowywany do pliku /etc/mail/sendmail.cf.Teraz mo¿esz uruchomiæ sendmaila z now¹ konfiguracj¹.Interpretacja i pisanie regu³ podstawianiaMo¿na pokusiæ siê o stwierdzenie, ¿e najmocniejsz¹ stron¹ sendmaila s¹ regu³y pod-stawiania.S³u¿¹ sendmailowi do okreSlania, jak przetwarzaæ odebran¹ wiadomoSæ.sendmail przekazuje adresy z nag³Ã³wków wiadomoSci do zestawu regu³ podstawiania(ang.rulesets).Regu³y podstawiania przetwarzaj¹ adres wiadomoSci z jednej postacido drugiej i mo¿esz je traktowaæ podobnie jak polecenie twojego edytora, które za-stêpuje ca³y tekst pasuj¹cy do jakiegoS wzorca innym tekstem.Ka¿da regu³a ma lew¹ i praw¹ stronê, oddzielone przynajmniej jednym znakiem ta-bulatora.Gdy sendmail przetwarza pocztê, przegl¹da regu³y podstawiania, szukaj¹cInterpretacja i pisanie regu³ podstawiania 325dopasowania po lewej stronie.Je¿eli adres pasuje do lewej strony regu³y, jest zastê-powany praw¹ stron¹ i ponownie przetwarzany.Polecenia R i S pliku sendmail.cfW pliku sendmail.cf zestawy regu³ s¹ definiowane za pomoc¹ poleceñ zapisywanychjakoSn, gdzienokreSla bie¿¹cy zestaw regu³.Same regu³y s¹ kodowane jako R.Przy odczytywaniu ka¿dego polecenia R, regu³ajest dodawana do aktualnego zestawu.Je¿eli u¿ywasz tylko pliku sendmail.mc, nie musisz w ogóle zawracaæ sobie g³owy po-leceniami S, gdy¿ wiêkszoSæ makr stworzy je za ciebie.Rêcznie musisz tworzyæ tyl-ko regu³y R.Zestaw regu³ sendmaila wygl¹da tak:SnRlhs rhsRlhs2 rhs2Kilka przydatnych makrodefinicjisendmail wykorzystuje wewnêtrznie kilka standardowych makrodefinicji.Najbar-dziej przydatne z nich przy pisaniu zestawów regu³ s¹:$jPe³na nazwa domenowa danego hosta.$wNazwa hosta uzyskana na podstawie FQDN.$mNazwa domeny uzyskana na postawie FQDN.Te makrodefinicje mo¿emy wykorzystywaæ w naszych regu³ach podstawiania.W konfiguracji browaru wirtualnego u¿ywane jest makro$m.Lewa stronaPo lewej stronie regu³y podstawiania umieszczasz wzorzec, do którego musi paso-waæ adres, który chcesz przekszta³ciæ.WiêkszoSæ znaków jest dopasowywana do-s³ownie, ale jest kilka, które maj¹ szczególne znaczenie.Przedstawiamy je poni¿ej.Regu³y podstawiania dla lewej strony s¹ nastêpuj¹ce:$@Pasuje dok³adnie zero leksemów.$*Pasuje zero lub mniej leksemów.$+Pasuje jeden lub wiêcej leksemów.$-Pasuje dok³adnie jeden leksem.326 Rozdzia³ 18: Sendmail$=xPasuje dowolna fraza z klasyx.$~xPasuje dowolne s³owo nie nale¿¹ce do klasyx.Leksem to ci¹g znaków ograniczony spacjami.Nie ma ani sposobu na umieszczeniespacji w leksemie, ani takiej potrzeby, gdy¿ wzorce wyra¿enia s¹ dostatecznie ela-styczne.Gdy adres zostanie dopasowany do regu³y, tekst pasuj¹cy do ka¿dego zewzorców wyra¿enia zostanie przypisany specjalnym zmiennym, których bêdziemyu¿ywaæ po prawej stronie.Jedynym wyj¹tkiem jest tu$@, do którego nie pasuje ¿a-den leksem i dlatego nigdy nie generuje on tekstu, który móg³by byæ wykorzystanypo prawej stronie.Prawa stronaGdy adres zostanie dopasowany do regu³y podstawiania po lewej stronie, oryginal-na treSæ jest usuwana i zastêpowana praw¹ stron¹ regu³y.Wszystkie leksemy poprawej stronie s¹ dos³ownie kopiowanie, chyba ¿e zaczynaj¹ siê od znaku dolara.Tak jak po lewej stronie, po prawej mo¿na tak¿e u¿ywaæ szeregu metasymboli.S¹one opisane na poni¿szej liScie.Regu³y podstawiania dla prawej strony s¹ nastê-puj¹ce:$nTen metasymbol jest zastêpowany przezn-te wyra¿enie z lewej strony.$[nazwa$]Ten metasymbol rozwija nazwê hosta do postaci kanonicznej.Podana nazwa ho-sta jest zastêpowana przez jej postaæ kanoniczn¹.$(mapa klucz $@argumenty $:domySlny $)To jest bardziej ogólna postaæ wyszukiwania.Wynik jest rezultatem poszukiwa-niakluczaw mapie o nazwie map przy przekazaniuargumentów.Map¹ mo¿ebyæ dowolna mapa obs³ugiwana przez sendmaila, jakvirtusertable, któr¹opisujemy nieco dalej.Je¿eli wyszukiwanie nie zakoñczy siê sukcesem, zostanieprzyjêty wynikdomySlny.Je¿eli nie zdefiniowaliSmy wyniku domySlnego i wy-szukiwanie siê nie powiedzie, to dane wejSciowe pozostan¹ niezmienione, a jakowynik zostanie podanyklucz.$>nTen symbol powoduje, ¿e zostanie przetworzona pozosta³a czêSæ wiersza, a na-stêpnie zostanie on przekazany zestawowi regu³ n do oszacowania.Wynikwywo³anego zestawu regu³ zostanie zapisany jako wynik tej regu³y.Ten me-chanizm powala na wywo³ywanie zestawów regu³ z regu³.$#program_wysy³aj¹cyTen metasymbol powoduje, ¿e szacowanie zestawów regu³ jest zatrzymywanei okreSla program wysy³aj¹cy, który powinien byæ u¿yty do przes³ania wiadomo-Sci w kolejnym kroku jej dostarczania.Ten metasymbol powinien byæ wywo-³ywany tylko z zestawu regu³ 0 lub jednej z jego procedur.Jest to koñcowy etapInterpretacja i pisanie regu³ podstawiania 327przetwarzania adresu i powinien byæ realizowany przez dwa nastêpne metasym-bole.$@hostTen metasymbol okreSla hosta, do którego zostanie przekazana wiadomoSæ.Je-¿eli docelowy host jest hostem lokalnym, mo¿na go pomin¹æ.hostmo¿e mieæpostaæ oddzielonej dwukropkami listy hostów docelowych, do których bêd¹ po-dejmowane kolejne próby dostarczenia poczty.$:u¿ytkownikTen metasymbol okreSla docelowego u¿ytkownika, dla którego jest przeznaczonapoczta
[ Pobierz całość w formacie PDF ]