Rechercher une page de manuel
procmailrc
Langue: pl
Version: \*(Dt (ubuntu - 01/11/07)
Section: 5 (Format de fichier)
Sommaire
NAZWA
procmailrc - plik rc procmailaSK£ADNIA
$HOME/.procmailrcOPIS
Dla szybkiego startu obejrzyj sekcjê UWAGI na koñcu strony podrêcznika procmail(1).Plik rc sk³ada siê z przypisañ zmiennych ¶rodowiskowych (niektóre z nich maj± specjalne znaczenie dla procmaila) i regu³. W najprostszej postaci, regu³y s± po prostu jednoliniowymi wyra¿eniami regularnymi, które s± poszukiwane w nag³ówkach przychodz±cej poczty; pierwsza regu³a, która zostanie dopasowana jest u¿ywana do okre¶lenia gdzie dany list ma pój¶æ (zwykle do pliku). Je¶li przetwarzanie dojdzie do koñca pliku rc, procmail dostarczy pocztê do $DEFAULT.
Istniej± dwa rodzaje regu³: dostarczaj±ce i niedostarczaj±ce. Je¶li dopasowana zostanie regu³a dostarczaj±ca, procmail zak³ada, ¿e poczta (zgad³e¶) jest dostarczona i zakoñczy przetwarzanie pliku rc po wykonaniu linii akcji regu³y. Je¶li dopasowana zostanie regu³a niedostarczaj±ca, to przetwarzanie pliku rc bêdzie kontynuowane nawet po wykonaniu akcji tej regu³y.
Regu³y dostarczaj±ce s± tymi, które powoduj± zapis nag³ówka lub cia³a listu do pliku, jego zaabsorbowanie przez program lub przeforwardowanie do innego adresu pocztowego.
Regu³y niedostarczaj±ce to te, które ³api± wyj¶cie programu lub filtru z powrotem do procmaila, lub te, które rozpoczynaj± zagnie¿d¿ony blok.
Mo¿na powiedzieæ procmailowi by traktowa³ regu³ê dostarczaj±c± jako niedostarczaj±c± poprzez przekazanie takiej regule flagi `c'. Spowoduje to, ¿e procmail wygeneruje kopiê listu typu carboncopy, tj. dostarczaj±c go regule i dalej przetwarzaj±c plik rc.
U¿ywaj±c dowolnej ilo¶ci regu³, mo¿esz posortowaæ swoj± pocztê wprost do okre¶lonych folderów pocztowych. Pamiêtaj jednak, ¿e poczta mo¿e wp³ywaæ do tych folderów w tym samym momencie (je¶li kilka procmaili dzia³a naraz, co nie jest nieprawdopodobne przy du¿ej ilo¶ci poczty). Aby upewniæ siê, ¿e nie narobi to ba³aganu, zalecane jest robienie w³a¶ciwego u¿ytku z plików blokuj±cych.
Inicjalizacje zmiennych ¶rodowiskowych i regu³y mog± byæ swobodnie przeplatane w pliku rc. Je¶li zmienna ¶rodowiskowa ma dla procmaila specjalne znaczenie, zostanie u¿yta odpowiednio w momencie przetwarzania. (np. mo¿esz zmieniæ katalog bie¿±cy kiedy tylko chcesz przez podanie nowego MAILDIR, zamieniæ pliki blokuj±ce przez podanie nowego LOCKFILE, zmieniæ umask, itd., mo¿liwo¶ci jest nieskoñczenie wiele :-).
Inicjalizacje i podstawienia tych zmiennych ¶rodowiskowych s± obs³ugiwane dok³adnie jak w sh(1) (to w³±cza wszystkie mo¿liwe cytaty i sekwencje specjalne), z dodatkow± premi±, ¿e puste miejsca dooko³a '=' s± ignorowane i tym, ¿e je¶li zmienna pojawi siê bez '=' na koñcu, to zostanie usuniêta ze ¶rodowiska. Ka¿dy program w odwrotnych apostrofach, uruchomiony przez procmail bêdzie mia³ ca³y list na swoim stdin.
Komentarze
S³owo zaczynaj±ce siê od # i wszystkie pod±¿aj±ce za nim znaki, a¿ do nowej linii s± ignorowane. Nie tyczy siê to linii warunkowych, które nie mog± byæ komentowane.Regu³y
Linia zaczynaj±ca siê od ':' oznacza pocz±tek regu³y. Ma nastêpuj±cy format:
- :0 [flagi] [ : [lokalnyplikblokuj±cy] ] <zero lub wiêcej warunków (jeden na liniê)> <dok³adnie jedna linia akcji>
Warunki zaczynaj± siê od `*' i wszystko co nastêpuje po tym znaku jest przekazywane wewnêtrznemu egrepowi, poza pocz±tkowymi i koñcowymi bia³ymi spacjami. Wyra¿enia regularne s± ca³kowicie kompatybilne z normalnymi wyra¿eniami regularnymi egrep(1). Zobacz tak¿e Rozszerzone wyra¿enia regularne.
Warunki s± logicznie koniugowane; je¿eli nie ma warunków, wynik jest domy¶lnie prawdziwy.
Flagi mog± byæ dowolnymi z nastêpuj±cych:
Tp 0.5i H Egrepuj nag³ówek (domy¶lnie).
Tp B Egrepuj cia³o.
Tp D Powiedz wewnêtrznemu egrepowi aby rozró¿nia³ du¿e i ma³e litery (w przeciwieñstwie do w³a¶ciwo¶ci domy¶lnej).
Tp A Ta regu³a bêdzie zale¿eæ od ostatniej poprzedzaj±cej regu³y (na bie¿±cym poziomie zagnie¿d¿enia) bez flagi `A' lub `a'. Umo¿liwia to wi±zanie akcji zale¿±cych od wspólnego warunku.
Tp a Ma takie samo znaczenie jak flaga `A', lecz zale¿y tak¿e od pomy¶lnego zakoñczenia poprzedzaj±cej regu³y.
Tp E Ta regu³a jest wykonywana tylko je¶li bezpo¶rednio poprzedzaj±ca regu³a nie by³a wykonana. Wykonanie tej regu³y wy³±cza tak¿e wszelkie bezpo¶rednio nastêpuj±ce regu³y z flag± 'E'. Umo¿liwia to stawianie akcji `else if'.
Tp e Ta regu³a jest wykonywana tylko je¶li bezpo¶rednio poprzedzaj±ca regu³a siê nie powiod³a. Umo¿liwia to okre¶lanie akcji na b³êdy.
Tp h Prze¶lij nag³ówek listu do potoku (domy¶lne).
Tp b Prze¶lij cia³o listu do potoku (domy¶lne).
Tp f Za³ó¿, ¿e potok jest filtrem.
Tp c Wygeneruj kopiê carbon copy tego listu. Ma to tylko sens dla regu³ dostarczaj±cych Jedyn± niedostarczaj±c± regu³±, na której flaga ta ma jaki¶ skutek jest wypadek zagnie¿d¿onego bloku, w celu wygenerowania kopii carbon copy proces procmaila zostanie sklonowany (pliki blokuj±ce nie zostan± odziedziczone), podczas gdy klon bêdzie pracowaæ jak zwykle, rodzic przeskoczy blok.
Tp w Czekaj na zakoñczenie filtru lub programu i sprawd¼ kod wyj¶cia (normalnie ignorowany); je¶li filtr zwróci³ b³±d, tekst nie bêdzie filtrowany.
Tp W Ma takie samo znaczenie jak flaga `w', lecz powstrzyma wszelkie informacje typu `Program failure'.
Tp i Ignoruj wszelkie b³êdy zapisu na tej regule (np. zwykle przez wcze¶nie zamkniêty potok).
Tp r Tryb surowy: nie próbuj zapewniæ, ¿e list koñczy siê pust± lini±, zapisz go jakim jest.
Istniej± pewne warunki specjalne, których mo¿esz u¿yæ, a które nie s± w pe³ni regularnymi wyra¿eniami. Aby wybraæ je, warunek musi zaczynaæ siê od:
Tp 0.5i ! Odwróæ warunek.
Tp $ Oszacuj resztê wed³ug regu³ podstawiania sh(1) wewn±trz podwójnych cudzys³owów, pomiñ pocz±tkowe bia³e spacje i przetwórz ponownie.
Tp ? U¿yj kodu wyj¶cia podanego programu.
Tp < Sprawd¼ czy ca³kowita d³ugo¶æ listu jest krótsza ni¿ podana (dziesiêtnie) ilo¶æ bajtów.
Tp > Analogiczne do '<'.
Tp zmienna ?? Porównaj resztê z warto¶ci± tej zmiennej ¶rodowiskowej (nie mo¿e to byæ pseudozmienna). Specjalnymi wypadkami s± `B', `H', `HB' i `BH', które zwyczajnie przeci±¿aj± domy¶lny obszar przeszukiwania nag³ówka/cia³a (header/body) zdefiniowanego dla tej regu³y.
Tp \ Aby zacytowaæ dowolny z powy¿szych znaków na pocz±tku linii.
Lokalny plik blokuj±cy
Je¶li umie¶cisz drugi (koñcz±cy) ':' w pierwszej linii regu³y, to procmail u¿yje lokalnego pliku blokuj±cego (locallockfile) (tylko dla tej regu³y). Opcjonalnie mo¿esz podaæ jakiego pliku u¿yæ; jednak je¶li tego nie uczynisz, procmail u¿yje nazwy pliku celu (lub nazwy pliku nastêpuj±cej po pierwszym '>>') i dopisze do niej $LOCKEXT.
Linia akcji regu³y
Linia akcji mo¿e zaczynaæ siê od nastêpuj±cych znaków:
Tp ! Forwarduje do podanych adresów pocztowych.
Tp | Uruchamia okre¶lony program, prawdopodobnie w $SHELL-u, je¶li wykryto jaki¶ ze znaków $SHELLMETAS. Mo¿esz opcjonalnie poprzedziæ ten symbol potoku znakiem variable=, który spowoduje, ¿e stdout programu zostanie przechwycony do zmiennej ¶rodowiskowej variable. Je¶li podasz tylko symbol potoku, bez ¿adnego programu, to procmail wrzuci list na stdout.
Tp { Je¶li nastêpuje za tym przynajmniej jedna spacja, tabulacja, lub nowa linia, to oznacza to pocz±tek zagnie¿d¿onego bloku. Wszystko, a¿ do nastêpnego nawiasu zamykaj±cego, bêdzie zale¿eæ od warunków podanych dla tej regu³y. Dozwolone jest nieograniczone zagnie¿d¿anie. Nawias zamykaj±cy istnieje zwyczajnie po to, by oddzieliæ blok; w ¿adnym wypadku nie wywo³a zakoñczenia procmaila. Po dotarciu do koñca bloku, przetwarzanie bêdzie kontynuowane, jak zwykle, po tym bloku. W bloku zagnie¿d¿onym flagi `H' i `B' dotycz± tylko warunków prowadz±cych do tego bloku, flagi `h' i `b' nie dzia³aj± tak czy inaczej.
Wszystko inne bêdzie uznawane za nazwê mailboxa (zarówno nazwê pliku lub katalog--absolutny lub wzglêdny do bie¿±cego katalogu (zobacz MAILDIR)). Je¶li jest to (mo¿liwe ¿e jeszcze nie istniej±ca) nazwa pliku, poczta zostanie do niego doklejona.
Je¶li jest to katalog, poczta zostanie dostarczona do nowo utworzonego, unikalnego pliku o nazwie $MSGPREFIX* w podanym katalogu. Je¶li nazwa katalogu koñczy siê "/.", to katalog ten jest uznawany za folder MH; procmail u¿yje nastêpnego numeru, który bêdzie dostêpny. Gdy procmail dostarcza do katalogów, mo¿esz podaæ wiele katalogów, do których nale¿y dostarczyæ (przy u¿yciu twardych dowi±zañ).
Domy¶lne warto¶ci zmiennych ¶rodowiskowych
Tp 2.2i LOGNAME, HOME i SHELL Twoje (odbiorcy) warto¶ci domy¶lne
Tp SHELLMETAS & |<>~;?*[
Tp SHELLFLAGS -c
Tp ORGMAIL /var/spool/mail/$LOGNAME
(Chyba, ¿e podano -m, wtedy opcja ta jest nieustawiona)
Tp MAILDIR $HOME/
(Chyba, ¿e nazwa pierwszego pomy¶lnie otwartego pliku rc zaczyna siê od ./, w którym wypadku warto¶ci± domy¶ln± jest `.')
Tp DEFAULT $ORGMAIL
Tp MSGPREFIX msg.
Tp SENDMAIL /usr/sbin/sendmail
Tp HOST Bie¿±ca nazwa hosta
Tp COMSAT no
(Je¶li plik rc jest podany w linii komend)
Tp LOCKEXT .lock
Inne czyszczone lub preustawiane zmienne ¶rodowiskowe to IFS, ENV, PWD, PATH=$HOME/bin :/bin :/usr/bin :/sbin :/usr/sbin :/usr/local/bin :/usr/local/sbin :/usr/bin/X11 and USER=$LOGNAME.
¦rodowisko
Zanim zgubisz siê w mêtliku zmiennych ¶rodowiskowych, pamiêtaj ¿e wszystkie one maj± sensowne warto¶ci domy¶lne.
Tp 1.2i MAILDIR Bie¿±cy katalog w momencie gdy procmail jest uruchomiany (znaczy to, ¿e wszystkie ¶cie¿ki s± relatywne do $MAILDIR).
Tp DEFAULT Domy¶lny plik mailbox (je¶li nie powiedziano inaczej, procmail wrzuci pocztê do tego mailboxa). Procmail automatycznie u¿yje $DEFAULT$LOCKEXT jako pliku blokuj±cego przed zapisaniem czego¶ do tego mailboxa. Nie musisz ustawiaæ tej zmiennej, poniewa¿ standardowo wskazuje ona na standardowy mailbox systemu.
Tp LOGFILE Plik ten bêdzie zawiera³ wszelkie komunikaty diagnostyczne i komunikaty o b³êdach od procmaila, lub od innych programów uruchomionych przez procmaila. Je¶li plik ten nie jest podany, komunikaty bêd± przesy³ane do wysy³aj±cego. Zobacz tak¿e LOGABSTRACT.
Tp VERBOSE Ustawiaj±c tê zmienn± na `yes' lub `on', mo¿esz w³±czyæ rozszerzon± diagnostykê, wy³±czyæ za¶ mo¿na j± przez ustawienie jej na `no' lub `off'.
Tp LOGABSTRACT Zanim procmail zakoñczy, raportuje dostarczon± wiadomo¶æ w $LOGFILE, pokazuj±c pola `From ' i `Subject: ' nag³ówka, folder do którego posz³a wiadomo¶æ, oraz jej d³ugo¶æ (w bajtach). Ustawienie tej zmiennej na `no' powstrzymuje generowanie tych informacji. Je¶li ustawisz j± na `all', procmail bêdzie logowa³ ka¿d± pomy¶lnie zakoñczon± regu³ê dostarczenia, któr± przetworzy.
Tp LOG Warto¶æ przyznana tej zmiennej bêdzie dodana do $LOGFILE.
Tp ORGMAIL Zazwyczaj mailbox systemowy (ORiGinal MAILbox). Je¶li z jakiego¶ powodu (jak przepe³nienie systemu plików), list nie móg³ byæ dostarczony do tego mailboxa, to procmail dostarczy go tutaj. Je¶li jednak nie bêdzie móg³ nawet tego uczyniæ, to list zostanie odbity do wysy³aj±cego.
Tp LOCKFILE Globalny plik semaforowy. Je¶li plik ten ju¿ istnieje, procmail bêdzie czeka³ a¿ zniknie i utworzy go samodzielnie (i wyczy¶ci gdy skoñczy). Je¶li podano wiêcej ni¿ jeden plik blokuj±cy, to poprzedni zostanie usuniêty przed prób± utworzenia nowego. U¿ywanie globalnego pliku blokuj±cego jest z³± praktyk±, lepiej u¿ywaæ lokalnych.
Tp LOCKEXT Domy¶lne rozszerzenie, które jest dodawane do plików docelowych, aby okre¶liæ, którego z lokalnych plików blokuj±cych u¿yæ.
Tp LOCKSLEEP Liczba sekund, które procmail ma odespaæ przed drug± prób± pliku blokuj±cego (je¶li taki ju¿ istnia³); je¶li liczby nie podano, to wynosi ona 8 sekund.
Tp LOCKTIMEOUT Liczba sekund, które mijaj± od ostatniej modyfikacji pliku blokuj±cego, zanim procmail zdecyduje, ¿e musi to byæ b³êdnie pozostawiony plik blokuj±cy, który trzeba usun±æ na si³ê. Warto¶æ zero mówi, ¿e nie ma czasu oczekiwania i ¿e procmail ma czekaæ do skutku. Je¶li nie jest podany, to odpowiada 1024 sekundom. Warto¶æ ta jest przydatna w zapobieganiu niezdefiniowanym zawieszeniom sendmaila/procmaila.
Tp TIMEOUT Ilo¶æ sekund, które musz± min±æ nim procmail zdecyduje, ¿e dziecko, które uruchomi³ musia³o siê zawiesiæ. Program odbierze od procmaila sygna³ TERMINATE, a przetwarzanie pliku rc pójdzie dalej. Je¶li podano zero, to nie bêdzie tu u¿ywany czas oczekiwania i procmail bêdzie czekaæ do skutku; je¶li zmienna nie jest podana, warto¶æ domy¶lna odpowiada 960 sekundom.
Tp MSGPREFIX Przedrostek nazwy pliku, który jest u¿ywany w wypadku dostarczania do katalogu (nie u¿ywany w katalogach MH).
Tp HOST je¶li nie jest to nazwa hosta maszyny, przetwarzanie bie¿±cego pliku rc zostaje przerywane. Je¶li w linii komend podano inne pliki rc, to przetwarzanie bêdzie kontynuowane z nastêpnym z nich. Je¶li wykorzystane zostan± wszystkie pliki rc, program zakoñczy pracê, lecz nie wygeneruje b³êdu (np. mailer bêdzie s±dzi³, ¿e wiadomo¶æ zosta³a dostarczona).
Tp UMASK Nazwa mówi za siebie (je¶li nie, zapomnij o tym :-). Wszystko przyznane zmiennej UMASK jest interpretowane jako warto¶æ ósemkowa. Je¶li nie jest podana, umaska ma warto¶æ 077. Je¶li umaska zezwala na o+x, wszystkie mailboxy, do których procmail dostarcza bezpo¶rednio, otrzymaj± zmianê trybu o+x. Mo¿e to byæ u¿ywane do sprawdzania, czy przyby³a nowa poczta.
Tp SHELLMETAS Je¶li jakikolwiek ze znaków SHELLMETAS pojawi siê w linii okre¶laj±cej filtr lub program, to linia zostanie przekazana $SHELL-owi, a nie zostanie wywo³ana bezpo¶rednio.
Tp SHELLFLAGS Ka¿de wywo³anie $SHELL-a bêdzie nastêpuj±ce:
"$SHELL" "$SHELLFLAGS" "$*";
Tp SENDMAIL Je¶li nie u¿ywasz w³a¶ciwo¶ci forwardowania, nie martw siê o to. Okre¶la to program wzywany do forwardowania poczty.
Jest wywo³ywany jako: "$SENDMAIL" "$@";
Tp NORESRETRY Ilo¶æ powtórek, które maj± byæ dokonane je¶li pojawi siê b³±d `process table full', `file table full', `out of memory' lub `out of swap space'. Je¶li liczba ta jest ujemna, procmail bêdzie próbowa³ wiecznie; je¶li nie jest podana, odpowiada warto¶ci 4. Powtórki zachodz± co $SUSPEND sekund. Ide±, która kryje siê za tym, jest to, ¿e je¶li np. wykorzystany zosta³ obszar swap, lub wykorzystana jest tablica procesów, to wiele innych programów wykryje to tak¿e i przerwie dzia³anie, lub 'padnie', zwalniaj±c cenne zasoby procmailowi.
Tp SUSPEND Liczba sekund, podczas których procmail bêdzie pauzowa³ je¶li musi czekaæ na co¶, co obecnie jest niedostêpne (pamiêæ, fork, itd.); je¶li nie podane, odpowiada 16 sekundom. Zobacz tak¿e: LOCKSLEEP.
Tp LINEBUF D³ugo¶æ wewnêtrznych buforów liniowych, nie mo¿e byæ mniejsza ni¿ 128. Wszystkie linie odczytywane z pliku rc nie powinny mieæ wiêcej ni¿ $LINEBUF znaków przed i po rozszerzeniu. Je¶li warto¶æ nie jest podana, odpowiada 2048. Limit ten oczywi¶cie nie stosuje siê do samego listu, który mo¿e mieæ okre¶lone d³ugo¶ci linii, lub mo¿e byæ plikiem binarnym.
Tp DELIVERED Je¶li ustawione na `yes', to procmail bêdzie udawa³ przed agentem pocztowym, ¿e poczta zosta³a dostarczona. Je¶li poczta nie mog³a byæ dostarczona, po napotkaniu tego ustawienia zostanie utracona (nie bêdzie np. odbita).
Tp TRAP Gdy procmail bêdzie koñczy³ dzia³anie, wywo³a zawarto¶æ tej zmiennej. Kopia listu mo¿e byæ odczytana ze stdin. Wszelkie wyj¶cie wyprodukowane przez tê komendê bêdzie dodane do pliku $LOGFILE. Przyk³adowe zastosowania TRAP to: usuwanie plików tymczasowych, logowanie w³asnych uzupe³nieñ, itp. Zobacz tak¿e EXITCODE i LOGABSTRACT.
Tp EXITCODE Gdy procmail koñczy dzia³anie, a zmienna ta zosta³a ustawiona na dodatni± warto¶æ numeryczn±, procmail u¿yje jej jako kodu wyj¶cia. Je¶li zmienna ta jest ustawiona, lecz pusta, procmail ustawi kod wyj¶cia na warto¶æ zwracan± przez program TRAP. Je¶li zmienna ta nie zosta³a ustawiona, procmail ustawi j± na krótko przed wywo³aniem programu TRAP .
Tp LASTFOLDER Zmienna ta jest inicjalizowana przez procmail za ka¿dym razem, gdy dostarcza co¶ jakiemu¶ folderowi lub programowi. Zawsze zawiera ona nazwê ostatniego foldera (lub programu) do którego co¶ dostarczano.
Tp MATCH Zmienna ta jest inicjalizowana przez procmail za ka¿dym razem, gdy ma on wyci±gn±æ tekst z wyra¿enia regularnego. Bêdzie zawieraæ ca³y tekst odpowiadaj±cego wyra¿enia regularnego po ¿etonie `\/'.
Tp SHIFT Przyznanie dodatniej warto¶ci dla tej zmiennej daje taki sam rezultat, jak komenda `shift' w sh(1). Komenda ta jest najbardziej u¿yteczna do wyci±gania dodatkowych argumentów podanych procmailowi, podczas gdy dzia³a jako filtr pocztowy.
Tp INCLUDERC Nazywa plik rc (wzglêdny do bie¿±cego katalogu), który powinien byæ w³±czony jako czê¶æ bie¿±cego pliku rc. Dozwolone jest nieograniczone zagnie¿d¿anie.
Tp COMSAT Notyfikacja Comsat(8)/biff(1) domy¶lnie jest w³±czona, lecz mo¿na j± wy³±czyæ przez ustawienie tej zmiennej na `no'. Alternatywnie, us³ugê biff mo¿na dokonfigurowaæ przez ustawienie zmiennej na `service@', `@hostname' lub `sevice@hostname'. Nie podana warto¶æ oznacza przyjêcie biff@localhost.
Tp DROPPRIVS Je¶li jest to ustawione na `yes', procmail porzuci wszelkie uprawnienia, jakie mo¿e mieæ (suid lub sgid). Opcja ta jest u¿yteczna, je¶li chcesz zagwarantowaæ, ¿e dolna czê¶æ pliku /etc/procmailrc jest wywo³ywana w imieniu odbiorcy.
Rozszerzone wyra¿enia regularne
Nastêpuj±ce ¿etony rozpoznawane s± zarówno przez wewnêtrzny egrep procmaila, jak i przez standardowy egrep(1):Tp 1.0i ^ Pocz±tek linii.
Tp $ Koniec linii.
Tp . Dowolny znak poza znakiem nowej linii.
Tp a* Dowolna sekwencja zero lub wiêcej a.
Tp a+ Dowolna sekwencja jednego lub wiêcej a.
Tp a? Albo zero, albo jedno a.
Tp [^-a-d] Dowolny znak, który nie jest kresk±, a, b, c, d, lub znakiem nowej linii.
Tp de|abc Albo sekwencja `de', albo `abc'.
Tp (abc)* Zero lub wiêcej sekwencji `abc'.
By³y to tylko przyk³ady, bardziej z³o¿one kombinacje sa równie¿ dozwolone.
Nastêpuj±ce znaczenia ¿etonów s± znane tylko rozszerzeniom procmaila:
Tp 1.0i ^ lub $ Dopasuj now± liniê (dla trafieñ wieloliniowych).
Tp ^^ Zakotwicz wyra¿enie na samym pocz±tku obszaru przeszukiwania, lub je¶li napotkane na koñcu wyra¿enia, na samym koñcu obszaru przeszukiwañ.
Tp \< lub \> Dopasuj znak przed, lub po s³owie. S± to ogólnie skróty dla `[^a-zA-Z0-9_]', lecz mog± tak¿e dopasowywaæ znaki nowej linii. Poniewa¿ odpowiadaj± rzeczywistym znakom, nadaj± siê tylko do oddzielania s³ów, nie do oddzielania przestrzeni miêdzys³ownej.
Tp \/ Dzieli wyra¿enie na dwie czê¶ci. Wszystko odpowiadaj±ce prawej stronie bêdzie przyznane zmiennej ¶rodowiskowej MATCH.
PRZYK£ADY
Zajrzyj na stronê podrêcznika procmailex(5).ZASTRZE¯ENIA
Kontynuowane linie w linii akcji, która okre¶la program, musz± zawsze koñczyæ siê lewym uko¶nikiem, nawet je¶li podleg³a pow³oka nie potrzebuje lub nie chce lewego uko¶nika do wskazania kontynuacji. Jest tak z powodu dwustopniowego procesu przetwarzania (najpierw procmail, potem pow³oka (lub nie, zale¿nie od SHELLMETAS)).Nie wstawiaj komentarzy w regule w liniach warunkowych wyra¿eñ regularnych, linie te s± przekazywane wewnêtrznemu egrepowi wprost (z wyj±tkiem lewych uko¶ników kontynuacji znajduj±cych siê na koñcu linii).
Pocz±tkowe bia³e spacje w kontynuowanych wyra¿eniach regularnych s± zazwyczaj ignorowane (wiêc mog± byæ wstawiane), lecz nie jest tak w kontynuowanych wyra¿eniach warunkowych, które s± odczytywane wed³ug regu³ podstawiania sh(1) wewn±trz podwójnych cytatów.
Uwa¿aj na deadlocki podczas wykonywania niezdrowych rzeczy jak forwardowanie poczty na swoje w³asne konto. Deadlocki mo¿na z³amaæ przez w³a¶ciwe u¿ycie LOCKTIMEOUT.
Wszelkie domy¶lne warto¶ci, których procmail u¿ywa dla zmiennych ¶rodowiskowych zawsze przeci±¿± te, które by³y wcze¶niej zdefiniowane. Je¶li naprawdê chcesz przeci±¿yæ warto¶ci domy¶lne, wstaw je albo do pliku rc, albo wypisz w linii poleceñ jako argumenty.
Zmienne ¶rodowiskowe, ustawiane wewn±trz interpretowanej-przez-pow³okê-`|' czê¶ci akcji regu³y nie zachowaj± ich warto¶ci po zakoñczeniu regu³y, gdy¿ s± one ustawiane w podpow³oce procmaila. Aby upewniæ siê, ¿e warto¶æ zostanie zachowana, musisz dokonaæ przyznania przed pocz±tkowym `|' regu³y, tak ¿e mo¿e przechwyciæ stdout programu.
Je¶li w regule dostarczaj±cej podasz tylko flagê `h' lub `b' i regu³a ta zostanie dopasowana, to je¿eli nie u¿y³e¶ flagi `c', cia³o listu lub (odpowiednio) jego nag³ówek zostan± utracone.
ZOBACZ TAK¯E
procmail(1), procmailsc(5), procmailex(5), sh(1), csh(1), mail(1), mailx(1), binmail(1), uucp(1), aliases(5), sendmail(8), egrep(1), grep(1), biff(1), comsat(8), lockfile(1), formail(1)B£ÊDY
Jedyne podstawienia zmiennych ¶rodowiskowych, które mog± byæ obs³ugiwane przez samego procmaila s± typu $nazwa, ${nazwa}, ${nazwa:-tekst}, ${nazwa:+tekst}, ${nazwa-tekst}, ${nazwa+tekst}, $#, $n, $$, $?, $_, $- i $=; gdzie $_ bêdzie podmieniane nazw± bie¿±cego pliku rc, $- przez $LASTFOLDER, a $= bêdzie zawieraæ punktacjê (score) ostatniej regu³y. Gdy u¿yte s± opcje -a lub -m to "$@" rozwinie siê do kolejno podanego argumentu (listy); lecz tylko je¶li przekazany jako lista argumentów do programu (?)Procmail nie wspiera rozwijania `~'.
Do przetwarzania pliku rc u¿ywany jest bufor liniowy d³ugo¶ci $LINEBUF i wszelkie rozwiniêcia musz± zmie¶ciæ siê w tym limicie. W przeciwnym wypadku zachowanie jest niezdefiniowane.
Je¶li globalny plik blokuj±cy ma ¶cie¿kê relatywn± a bie¿±cy katalog nie jest taki sam jak na pocz±tku, to lokalny plik blokuj±cy nie zostanie usuniêty je¶li procmail zakoñczy w tym momencie dzia³anie (tak wiêc: u¿ywaj dla globalnych plików blokuj±cych ¶cie¿ek absolutnych).
Lokalny plik blokuj±ce regu³y, który zaznacza pocz±tek zagnie¿d¿onego bloku nie dzia³a jak by siê tego oczekiwa³o.
Gdy przechwytuje siê stdinu z regu³y do zmiennej ¶rodowiskowej, jeden, koñcz±cy znak nowej linii zostanie obciêty.
RO¯NE
Je¶li wyra¿enie regularne zawiera `^TO', to zostanie to podmienione przez `(^((Original-)?(Resent-)?(To |Cc |Bcc) |(X-Envelope |Apparently(-Resent)?)-To) :(.*[^a-zA-Z])?)', co powinno z³apaæ wszystkie specyfikacje celu.Je¶li wyra¿enie regularne zawiera`^FROM_DAEMON' to zostanie przez `(^(Precedence :.*(junk |bulk |list) |(((Resent-)?(From |Sender) |X-Envelope-From) : |>?From )(.*[^(.%@a-z0-9])?(Post(ma?(st(e?r)? |n) |office) |(send)?Mail(er)? |daemon |mmdf |root |n?uucp |smtp |response |LISTSERV |owner |request |bounce |serv(ices? |er) |Admin(istrator)?)([^).! :a-z0-9].*)?$[^>]))', co powinno wy³apaæ listy pochodz±ce od wiêkszo¶ci demonów (fajne wyra¿enie regularne? :-).
Je¶li wyra¿enie regularne zawiera `^FROM_MAILER' to zostanie podmienione przez `(^(((Resent-)?(From |Sender) |X-Envelope-From) : |>?From )(.*[^(.%@a-z0-9])?(Post(ma(st(er)? |n) |office) |(send)?Mail(er)? |daemon |mmdf |root |n?uucp |smtp |response |serv(ices? |er) |Admin(istrator)?)([^).! :a-z0-9].*)?$[^>])' (obciêta wersja `^FROM_DAEMON'), co powinno wy³apaæ listy pochodz±ce od wiêkszo¶ci demonów-mailerowych.
Podczas przypisywania warto¶ci logicznych zmiennym takim jak VERBOSE, DELIVERED czy COMSAT, procmail przyjmuje jako prawdziwy napis zaczynaj±cy siê od: niezerowej warto¶ci, `on', `y', `t' lub `e'. Fa³sz jest ka¿dym napisem zaczynaj±cym siê od warto¶ci zero, `off', `n', `f' lub `d'.
Je¶li linia akcji regu³y okre¶la program, to pojedyncza para odwrotnyuko¶nik-nowalinia w niej wystêpuj±ca, na pustej linii zostanie przekszta³cona w now± liniê.
UWAGI
Poniewa¿ niecytowane pocz±tkowe bia³e spacje s± ogólnie ignorowane w plikach rc, mo¿esz sobie wszystko powcinaæ wed³ug uznania.Prowadz±ce `|' linii akcji, wskazuj±ce program lub filtr, jest obcinane przed sprawdzeniem $SHELLMETAS
Pliki w³±czane dyrektyw± INCLUDERC zawieraj±ce tylko przyznania warto¶ci zmiennym ¶rodowiskowym mog± byæ dzielone z sh.
naprawdê skomplikowanego przetwarzania mo¿esz nawet rozwa¿yæ rekurencyjne wywo³ywanie procmaila.
AUTOR
Stephen R. van den Berg w RWTH-Aachen, Germany- berg@pool.informatik.rwth-aachen.de
Temps sombre ! enfant ému du frisson poétique
Pauvre oiseau qui heurtais du crâne mes barreaux
On me livrait tout vif aux chiffres, noirs bourreaux
On me faisait de force ingurgiter l'algèbre
On me liait au fond d'un Boisbertrand funèbre
On me tordait, depuis les ailes jusqu'au bec
Sur l'affreux chevalet des X et des Y
Hélas, on me fourrait sous les os maxillaires
Le théorème orné de tous ses corollaires
Et je me débattais, lugubre patient
Du diviseur prêtant main-forte au quotient
-+- Victor Hugo, Les Contemplations -+-
Contenus ©2006-2009 Benjamin Poulain
Design ©2006-2009 Maxime Vantorre