Provided by:
manpages-pl_20060617-3_all 
NAZWA
procmailrc - plik rc procmaila
SKŁADNIA
$HOME/.procmailrc
OPIS
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 regua dostarczajca, procmail zakłada, że poczta
(zgadłeś) jest dostarczona i zakoczy przetwarzanie pliku rc po
wykonaniu linii akcji reguły. Jeśli dopasowana zostanie regua
niedostarczajca, 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 dostarczajc 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] [ : [lokalnyplikblokujcy] ]
<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:
H Egrepuj nagłówek (domyślnie).
B Egrepuj ciało.
D Powiedz wewnętrznemu egrepowi aby rozróżniał duże i małe litery (w
przeciwieństwie do właściwości domyślnej).
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.
a Ma takie samo znaczenie jak flaga `A', lecz zależy także od
pomylnego zakończenia poprzedzającej reguły.
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'.
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.
h Prześlij nagłówek listu do potoku (domyślne).
b Prześlij ciało listu do potoku (domyślne).
f Załóż, że potok jest filtrem.
c Wygeneruj kopię carbon copy tego listu. Ma to tylko sens dla reguł
dostarczajcych 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.
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.
W Ma takie samo znaczenie jak flaga `w', lecz powstrzyma wszelkie
informacje typu `Program failure'.
i Ignoruj wszelkie błędy zapisu na tej regule (np. zwykle przez
wcześnie zamknięty potok).
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:
! Odwróć warunek.
$ 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.
? Użyj kodu wyjścia podanego programu.
< Sprawdź czy całkowita długość listu jest krótsza niż podana
(dziesiętnie) ilość bajtów.
> Analogiczne do '<'.
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.
\ 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 blokujcego (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:
! Forwarduje do podanych adresów pocztowych.
| 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.
{ 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
LOGNAME, HOME i SHELL Twoje (odbiorcy) wartości domyślne
SHELLMETAS &|<>~;?*[
SHELLFLAGS -c
ORGMAIL /var/spool/mail/$LOGNAME
(Chyba, że podano -m, wtedy opcja ta jest
nieustawiona)
MAILDIR $HOME/
(Chyba, że nazwa pierwszego pomyślnie otwartego
pliku rc zaczyna się od ./, w którym wypadku
wartością domyślną jest `.')
DEFAULT $ORGMAIL
MSGPREFIX msg.
SENDMAIL /usr/sbin/sendmail
HOST Bieżąca nazwa hosta
COMSAT no
(Jeśli plik rc jest podany w linii komend)
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.
MAILDIR Bieżący katalog w momencie gdy procmail jest uruchomiany
(znaczy to, że wszystkie ścieżki są relatywne do $MAILDIR).
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.
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.
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'.
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.
LOG Wartość przyznana tej zmiennej będzie dodana do $LOGFILE.
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.
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.
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ć.
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.
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.
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.
MSGPREFIX Przedrostek nazwy pliku, który jest używany w wypadku
dostarczania do katalogu (nie używany w katalogach MH).
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).
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.
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.
SHELLFLAGS Każde wywołanie $SHELL-a będzie następujące:
"$SHELL" "$SHELLFLAGS" "$*";
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" "$@";
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 procesw, to wiele innych programów wykryje to
także i przerwie działanie, lub 'padnie', zwalniając cenne
zasoby procmailowi.
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.
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.
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).
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.
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 .
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.
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 `\/'.
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.
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.
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.
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):
^ Początek linii.
$ Koniec linii.
. Dowolny znak poza znakiem nowej linii.
a* Dowolna sekwencja zero lub więcej a.
a+ Dowolna sekwencja jednego lub więcej a.
a? Albo zero, albo jedno a.
[^-a-d] Dowolny znak, który nie jest kreską, a, b, c, d, lub znakiem
nowej linii.
de|abc Albo sekwencja `de', albo `abc'.
(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:
^ lub $ Dopasuj nową linię (dla trafień wieloliniowych).
^^ Zakotwicz wyrażenie na samym początku obszaru przeszukiwania,
lub jeśli napotkane na końcu wyrażenia, na samym końcu
obszaru przeszukiwań.
\< 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.
\/ 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
INFORMACJE O TŁUMACZENIU
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu
Tłumaczenia Manuali i moe nie by aktualne. W razie zauważenia różnic
między powyższym opisem a rzeczywistym zachowaniem opisywanego programu
lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją
strony podręcznika.