PROCMAILRC(5) PROCMAILRC(5)
JMENO
procmailrc - konfiguracni soubor programu procmail
POUZITI
$HOME/.procmailrc
POPIS
Chcete-li rychle zacit, podivejte se na POZNAMKY na konci manualove
stranky. procmail(1).
Tento konfiguracni soubor muze obsahovat kombinaci prirazeni do
promennych prostredi (z nichz nektere mohou mit pro procmail zvlastni
vyznam), a predpisy. V nejjednodussi podobe obsahuji predpisy
jednoradkove regularni vyrazy vyhledavane v hlavicce prijate e-mailove
zpravy. Prvni predpis, ktery nalezne shodu s regularnim vyrazem, potom
urci kam se zprava dale presune (obvykle do souboru). Pokud se zpra-
covani dostane az na konec rc souboru, procmail doruci e-mailovou
zpravu na $DEFAULT.
Existuji dva druhy predpisu: dorucujici a nedorucujici. Pokud je nale-
zena shoda v dorucujicim predpisu, procmail povazuje zpravu (ano,
uhadli jste) za dorucenou a ukonci zpracovani konfiguracniho souboru po
uspesnem provedeni akcniho radku predpisu. Pokud je nalezena shoda v
nedorucujicim predpisu zpracovani bude pokracovat i po provedeni
akcniho radku tohoto predpisu.
Dorucujici predpisy jsou ty, ktere zpusobi, ze hlavicky a/nebo telo
zpravy jsou zapsany do souboru, pouzity nejakym programem nebo
presmerovany na nejakou postovni adresu.
Nedorucujici predpisy jsou ty, ktere zpusobi, ze vystup nejakeho pro-
gramu nebo filtru je znovu zachycen procmail-em, nebo predpisy, ktere
oteviraji vnoreny blok.
Procmailu muzete rici, ze ma zpracovavat dorucujici predpis jako
nedorucujici, kdyz uvedete priznak 'c' v hlavicce predpisu. To prinuti
procmail vytvorit kopii prave zpracovavane zpravy. Zprava je tudiz
dorucena podle predpisu, ale zaroven se s jeji kopii pokracuje ve zpra-
covani konfiguracniho souboru.
Pouzitim libovolneho poctu predpisu muzete svou prichozi postu velmi
primocarym zpusobem roztridit do nekolika slozek. Avsak mejte na
pameti, ze do techto slozek mohou prichazet soucasne ruzne zpravy
(jestlize bezi vice instanci procmailu, coz neni neobvykle pri vetsim
mnozstvi doslych zprav). Aby v tom pripade ve slozkach nevznikl zma-
tek, velmi doporucujeme vhodne pouzivat zamku (angl. "lock files").
V konfiguracnim souboru lze libovolne michat prirazeni do promennych a
predpisy. Promenne, ktere maji v procmailu zvlastni vyznam, budou
pouzity prislusnym zpusobem v momente zpracovani radku kde se vyskytuji
(tzn. ze muzete kdykoliv zmenit pracovni adresar zadanim nove hodnoty
MAILDIR, prepinat zamky prirazenim do LOCKFILE, kdykoliv zmenit umask,
atd., moznosti je nekonecne mnoho :-).
Prirazovani a substituce techto promennych se provadi presne stejne
jako v sh(1) (vcetne vsech moznosti uvozovani a escape sekvenci), ale
krome toho jeste poskytuje dalsi vyhody v tom, ze bile znaky obklo-
pujici '=' jsou ignorovany. Pokud se objevi jmeno promenne bez kon-
coveho '=', bude tato promenna zrusena. Jakykoliv program uvedeny ve
zpetnych apostrofech procmail spusti a preda mu celou zpravu na stan-
dardni vstup.
Komentare
Slovo zacinajici znakem # a vsechny nasledujici znaky az do konce radku
jsou ignorovany. Toto neplati pro radky obsahujici podminku, ty nemohou
byt komentovany.
Predpisy
Radek zacinajici znakem ':' oznacuje zacatek predpisu. Ma tento format:
:0 [priznaky] [ : [lokalni zamek] ]
<jedna nebo vice podminek (jedna na radek)>
<prave jeden akcni radek>
Podminkovy radek zacina znakem '*'. Zbytek radku krome uvozujicich a
koncovych mezer je poslan znak po znaku na vstup vnitrniho egrep-u.
Regularni vyrazy vnitrniho egrepu jsou naprosto kompatibilni s
rozsirenou syntaxi regularnich vyrazu programu egrep(1). Viz tez
Rozsirena syntaxe regularnich vyrazu.
Mezi podminkami v jednom predpisu plati logicky soucin (AND). Pokud
predpis neobsahuje zadnou podminku, vysledek testu bude vzdycky prav-
divy.
Priznak muze byt jeden z nasledujicich znaku:
H Do programu egrep se posle zahlavi zpravy (standard).
B Do egrepu se posle telo zpravy.
D Sdeli egrepu, ze ma rozlisovat mala a velka pismena (standard je
nerozlisovat).
A Tento predpis bude zavisly na poslednim predchazejicim predpisu
bez priznaku 'A' nebo 'a' (na aktualni urovni vnoreni). To vam
umoznuje retezit akce, ktere zavisi na spolecne podmince.
a Ma tentyz vyznam jako 'A', ale bude zaroven zaviset na uspesnem
dokonceni predchoziho predpisu.
E Tento predpis se provede pouze v pripade, ze bezprostredne
predchazejici predpis nebyl proveden. Jeho uspesne provedeni
rovnez znemozni provedeni bezprostredne nasledujicich predpisu s
'E'. To vam umoznuje definovat akce typu 'else if'.
e Predpis se provede pouze v pripade, ze bezprostredne predchazejici
predpis selhal. To vam umoznuje definovat akce na zpracovani
chyb.
h Zahlavi zpravy se posle na vstup roury (default).
b Telo zpravy se posle na vstup roury (default).
f S rourou se ma zachazet jako s filtrem.
c Vytvor kopii zpracovavane zpravy. Tento priznak ma vyznam pouze v
dorucujicich predpisech. Jediny druh nedorucujiciho predpisu v
nemz dojde tento priznak smysluplneho pouziti je blok (vnoreni).
Aby mohla byt zpracovana kopie, priznak zpusobi rozdvojeni prave
beziciho procesu (zamky se nededi), pricemz novy proces pokracuje
ve zpracovani obvyklym zpusobem, zatimco puvodni proces preskoci
blok a pokracuje za nim.
w Ceka na ukonceni spusteneho filtru nebo programu a otestuje navra-
tovou hodnotu (standardne ji ignoruje). Pokud bude filtr
neuspesny, text nebude filtrovan.
W Stejny vyznam jako priznak 'w', ale potlaci hlasky 'Program fai-
lure'.
i Ignoruje chyby zapisu v tomto predpisu (obvykle nastavaji pri
predcasnem uzavreni roury).
r 'Hruby' rezim (raw). Nepokousi se ujistit jestli zprava konci
prazdnym radkem, zapise ji tak jak je.
Muzete pouzit zvlastni podminky, ktere nejsou primo regularnimi vyrazy.
Takove podminky musi zacinat:
! Negace podminky nasledujici po vykricniku.
$ Zbytek vyhodnoti podle pravidel pro substituci uvnitr dvojitych
uvozovek v sh(1) , preskoci uvodni mezery a potom znovu vyhodnoti
? Pouzije exit kod uvedeneho programu
< Otestuje zda je celkova delka zpravy mensi nez uvedeny pocet bajtu
(decimalne).
> Obdobne jako '<'.
jmeno_promenne ??
Porovna zbytek s hodnotou teto promenne (nesmi se jednat o pseu-
dopromennou). Zvlastnim pripadem jsou 'B', 'H', 'HB' a 'BH',
ktere pouze meni prohledavanou oblast zahlavi/tela zpravy, defino-
vanou pro aktualni predpis.
\ Pouzijte, chcete-li pouzit kterykoliv z vyse uvedenych znaku na
zacatku radku v jeho normalnim vyznamu.
Lokalni zamek
Pokud umistite na konec prvniho radku predpisu druhou dvojtecku, pro-
cmail pouzije lokalni_zamek (pouze pro aktualni predpis). Volitelne
muzete za dvojtecku zadat jmeno zamku, ktery chcete pouzit. Pokud tak
ovsem neucinite, procmail pouzije jmeno vystupniho souboru (nebo jmeno
za prvni '>>'), za ktere pripoji hodnotu $LOCKEXT.
Akcni radek predpisu
Akcni radek muze zacinat jednim z nasledujicich znaku:
! Posle postu (forward) na vsechny nasledujici e-mailove adresy.
| Spusti program; pokud je nalezen kterykoliv znak z $SHELLMETAS,
pokusi se spustit program pomoci $SHELL-u. Volitelne muzete pred
znak roury umistit promenna=, coz zpusobi, ze standardni vystup
spusteneho programu bude ulozen do promenne. Pokud zadate pouze
znak roury bez zadneho nazvu programu, procmail presmeruje obsah
zpravy na standardni vystup.
{ Nasledovana alespon jednou mezerou, tabulatorem nebo znakem novy
radek oznacuje zacatek vnoreneho bloku. Vsechno uvnitr bloku az
po nasledujici uzavirajici zavorku bude zaviset na podmince
aktualniho predpisu. Pocet urovni vnoreni neni omezen.
Uzaviraci zavorka pouze ukoncuje blok; v zadnem pripade
nezpusobuje ukonceni procmailu. Kdyz je dosazeno konce bloku,
zpracovani pokracuje obvyklym zpusobem za blokem. Ve vnorenem
bloku maji priznaky 'B' a 'H' vliv pouze na podminky
predchazejici tento blok, priznaky 'h' a 'b' nemaji vubec zadny
vliv.
Cokoliv jineho bude povazovano za jmeno postovni schranky (bud jmeno
souboru nebo adresare, absolutni nebo relativni k aktualnimu adresari
(viz MAILDIR)). Pokud se jedna o jmeno souboru (byt neexistujiciho),
zprava bude pridana na jeho konec.
Pokud se jedna o jmeno adresare, zprava bude dorucena do souboru se
zarucene jedinecnym nazvem zacinajicim $MSGPREFIX, nove vytvoreneho v
tomto adresari. Pokud nazev adresare konci retezcem "/.", predpoklada
se, ze se jedna o slozku systemu MH a procmail pouzije dalsi volne
cislo, ktere nalezne. Pokud procmail dorucuje do adresare, muzete
zadat nekolik adresaru do nichz chcete zpravu dorucit.
Implicitni hodnoty promennych
LOGNAME, HOME a SHELL Vase (prijemcovy) standardni hodnoty
SHELLMETAS &|<>~;?*[
SHELLFLAGS -c
ORGMAIL /var/spool/mail/$LOGNAME
(V pripade, ze bylo zadano -m nedefinovano)
MAILDIR $HOME/
(Krome pripadu, kdy jmeno prvniho uspesne
otevreneho rc souboru zacina './'; tehdy je
implicitni hodnota '.')
DEFAULT $ORGMAIL
MSGPREFIX msg.
SENDMAIL /usr/sbin/sendmail
HOST Aktualni jmeno pocitace (hostname)
COMSAT no
(Pokud je jmeno rc souboru uvedeno v prikazove
radce)
LOCKEXT .lock
Ostatni nulovane nebo prednastavene promenne jsou IFS, ENV, PWD,
PATH=$HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
:/usr/local/sbin:/usr/bin/X11 a USER=$LOGNAME.
Dalsi promenne
Drive nez vas zahlti mnozstvi promennych, mejte na pameti, ze vsechny
maji rozumne implicitni hodnoty.
MAILDIR Aktualni adresar za behu procmailu (coz znamena, ze vsechny
cesty jsou relativni vzhledem k $MAILDIR).
DEFAULT Standardni soubor postovni schranky (pokud neni urceno
jinak, procmail ulozi zpravu do teto schranky). Pred
zapisem do teto schranky pouzije procmail automaticky
$DEFAULT$LOCKEXT jako zamek. Tuto promennou nemusite nasta-
vovat, nebot jiz obsahuje implicitni systemovou schranku.
LOGFILE Tento soubor bude obsahovat jakakoliv chybova nebo diagnos-
ticka hlaseni procmailu (za normalnich okolnosti zadna :-)
prip. jinych programu spustenych procmailem. Jestlize tento
soubor neni definovan, veskera diagnosticka nebo chybova
hlaseni budou zaslana e-mailem odesilateli zpravy. Viz tez
LOGABSTRACT.
VERBOSE Nastavenim teto promenne na 'yes' nebo 'on' (ano, resp.
zapnout; pozn. prekl.) pripadne 'no' ci 'off' (ne,
vypnout) muzete zapinat respektive vypinat rozsirenou diag-
nostiku.
LOGABSTRACT Tesne pred svym ukoncenim zapise procmail do souboru
$LOGFILE shrnuti zpravy: zahlavi 'From:' a 'Subject:', do
jake slozky (schranky) byla zprava ulozena a jaka byla jeji
delka v bajtech. Nastavenim teto promenne na 'no' se vypis
potlaci. Nastavenim teto promenne na 'all' (vsechno) se
zajisti vypis pro kazdy uspesne dokonceny dorucujici
predpis.
LOG Cokoliv prirazene teto promenne bude pripojeno do souboru
$LOGFILE.
ORGMAIL Obvykle systemova schranka (ORiGinal MAILbox). Pokud z
nejakeho tajemneho duvodu nemuze byt zprava dorucena, tato
schranka bude posledni moznosti. Pokud se procmailu
nepodari zpravu ulozit ani sem (moc, moc spatny :-) vrati
zpravu odesilateli.
LOCKFILE Globalni semafor. Pokud tento soubor jiz existuje, procmail
pred dalsim zpracovanim pocka az zmizi; potom jej sam
vytvori (a samozrejme take smaze, kdyz skonci). Pokud je
specifikovan vice nez jeden semafor bude ten predchozi
smazan drive nez se zkusi vytvorit novy. Uzivani globalniho
semaforu se nedoporucuje. Tam kde je to mozne, pouzijte
misto toho lokalni zamky (na bazi jednotlivych predpisu).
LOCKEXT Implicitni pripona, jejimz pripojenim ke jmenu ciloveho
souboru se ziska jmeno lokalniho zamku (pokud jsou zapnuty,
pro jednotlive predpisy).
LOCKSLEEP Pocet sekund, ktere procmail vycka nez opet zkusi zamek
(pokud jiz existoval); pokud neni specifikovano, implicitni
hodnota je 8 sekund.
LOCKTIMEOUT Pocet sekund, ktere musi uplynout od casu posledni modifi-
kace/vytvoreni zamku aby procmail usoudil, ze se to musi
byt soubor pozustaly v dusledku chyby, ktery nyni muze byt
nucene odstranen. Pokud je nastavena nula, lhuta se
nepouzije a procmail bude cekat navzdy dokud se soubor
neodstrani; pokud neni specifikovana zadna hodnota, impli-
citne 1024 sekund. Tato promenna se hodi proti zacykleni
sendmailu/procmailu. Procmail je imunni vuci odchylkam
hodin na ruznych pocitacich.
TIMEOUT Pocet sekund, ktere musi uplynout nez procmail usoudi, ze
nektery z dcerinych procesu, ktere spustil, musel zamrz-
nout. Dotycny program obdrzi od procmailu signal TERMINATE
a zpracovani konfiguracniho souboru bude pokracovat. Pokud
je nula, lhuta se nepouzije a procmail ceka dokud se neu-
konci dceriny process; neni-li hodnota specifikovana je
implicitni hodnota 960 sekund.
MSGPREFIX Predpona souboru, pokud se zprava dorucuje do adresare
(nepouziva se pri dorucovani do MH adresare).
HOST Pokud toto neni totozne se jmenem pocitace, ktere vraci
hostname zpracovani aktualniho konfiguracniho souboru se
okamzite ukonci. Pokud byly na prikazove radce uvedeny
dalsi soubory, zpracovani bude pokracovat nasledujicim z
nich. Pokud jiz byly vsechny pouzity, program se ukonci,
ale nezpusobi chybu (tzn. ze postovnimu programu se bude
zdat, ze posta byla dorucena).
UMASK Jmeno rika vse (pokud ne, zapomente na nej :-). Jakakoliv
hodnota prirazena UMASK bude interpretovana jako osmickove
cislo. Neni-li specifikovano, maska je implicitne 0777.
Pokud maska dovoluje o+x, vsechny schranky do nichz pro-
cmail dorucuje primo prodelaji zmenu o+x. To se da pouzit
ke kontrole zda prisla nova posta.
SHELLMETAS Pokud se kterykoliv ze znaku retezce SHELLMETAS objevi v
radku obsahujicim filtr nebo program, radek bude poslan do
$SHELL namisto primeho spusteni.
SHELLFLAGS Jakekoliv volani $SHELL-u bude uskutecneno ve tvaru
"$SHELL" "$SHELLFLAGS" "$*";
SENDMAIL Pokud nepouzivate presmerovani (forwarding), nelamte si s
timhle hlavu. Urcuje program, ktery bude forwardovat jakou-
koliv postu.
Vola se jako: "$SENDMAIL" "$@";
NORESRETRY Pocet opakovanych pokusu pred tim nez nastane nektera z
chyb 'process table full' (zaplneni tabulky procesu), 'file
table full' (zaplneni tabulky souboru), 'out of memory'
(nedostatek pameti) nebo 'out of swap space' (zaplneni
odkladaciho prostoru). Pokud je toto cislo zaporne, pro-
cmail to bude zkouset donekonecna; pokud neni specifi-
kovano, implicitni hodnota je 4. Dalsi pokusy o opakovani
akce nastavaji v intervalu $SUSPEND sekund. Myslenka tohoto
usporadani spociva v tom, ze pokud je napr. vycerpan swapo-
vaci prostor nebo se zaplnila tabulka procesu, obvykle to
zjisti nekolik dalsich programu, ktere bud skonci nebo zko-
labuji cimz uvolni nedostavajici se systemove zdroje pro-
cmailu.
SUSPEND Cas v sekundach kdy bude procmail cekat na neco co
momentalne neni k dispozici (pamet, fork, atd.); neni-li
specifikovano, implicitni hodnota je 16 sekund. Viz tez:
LOCKSLEEP.
LINEBUF Delka interni radkove vyrovnavaci pameti. Nelze nastavit
mensi nez 128. Delka zadneho radku v konfiguracnim souboru
by nemela prekrocit $LINEBUF znaku pred ani po provedeni
substituci. Pokud neni specifikovano, standard je 2048.
Toto omezeni samozrejme neplati na zpravu samotnou; ta muze
mit libovolne delky radku nebo muze byt i binarnim soubo-
rem.
DELIVERED Pokud je nastavena na 'yes', procmail bude predstirat
(MTA), ze zprava byla dorucena. Pokud pri takovem nastaveni
nelze zpravu dorucit, zprava bude navzdy ztracena (nebude
odeslana na postmastera apod.).
TRAP Pri ukonceni procmailu se provede obsah teto promenne.
Kopie zpravy je k dispozici na standardnim vstupu.
Jakykoliv vystup vytvoreny timto prikazem bude pripojen do
souboru $LOGFILE. Mozna pouziti TRAP-u: odstraneni
docasnych souboru, na miru site vytahy zprav, atd. Viz tez:
EXITCODE a LOGABSTRACT.
EXITCODE Pokud byla teto promenne prirazena kladna hodnota, pouzije
se jako navratova hodnota pri ukonceni procmailu. Pokud je
tato promenna specifikovana, ale prazdna, procmail pouzije
navratovou hodnotu vracenou programem TRAP Pokud tato
promenna neni nastavena, procmail ji nastavi kratce pred
vyvolanim programu TRAP.
LASTFOLDER Tuto promennou nastavi procmail kdykoliv doruci nejakou
zpravu do slozky nebo do programu. Vzdy obsahuje jmeno
slozky (nebo programu) kam procmail dorucil zpravu.
MATCH Procmail priradi teto promenne hodnotu kdykoliv ma ulozit
text z uspesne porovnaneho regularniho vyrazu. Obsahuje
veskery text vyhovujici regularnimu vyrazu za specialnim
znakem '\/'.
SHIFT Prirazeni kladne hodnoty teto promenne ma stejny efekt jako
prikaz 'shift' v sh(1). Tento prikaz ma nejvetsi vyuziti
pri ziskani dalsich argumentu predanych procmailu kdyz je
pouzit jako genericky filtr e-mailovych zprav.
INCLUDERC Jmeno konfiguracniho souboru (relativni vzhledem k
aktualnimu adresari), ktery bude zarazen do zpracovani jako
by byl soucasti aktualniho konfiguracniho souboru. Je povo-
leno neomezene vnorovani.
COMSAT Implicitne je notifikace Comsat(8)/biff(1) zapnuta. Da se
vypnout nastavenim teto promenne na 'no'. Alternativne lze
sluzbu biff upravit nastavenim teto promenne bud na
'sluzba@', '@hostname', nebo 'sluzba@hostname'. Neni-li
specifikovano, pouzije se biff@localhost.
DROPPRIVS Nastavi-li se na 'yes', procmail 'shodi' vsechna prava,
kterych eventualne mohl nabyt (suid, sgid). Toto se hodi
pouze v pripade, ze chcete, aby se zbyla cast souboru
/etc/procmailrc provedla jmenem prijemce.
Rozsirene regularni vyrazy
Nasledujici specialni konstrukce pouziva jak interni egrep v procmailu,
tak standardni egrep(1):
^ Zacatek radku.
$ Konec radku.
. Jakykoliv znak krome konce radku.
a* Posloupnost libovolneho, i nuloveho poctu acek.
a+ Posloupnost jednoho nebo vice acek.
a? Jedno nebo zadne a.
[^-a-d] Jakykoliv znak, ktery neni pomlcka, a, b, c, d nebo konec
radku.
de|abc Bud posloupnost 'de' nebo 'abc'.
(abc)* Zadny vyskyt nebo libovolny pocet opakovani posloupnosti
'abc'.
Tohle byly samozrejme pouze priklady. Jakakoliv slozitejsi kombinace je
rovnez pripustna.
Nasledujici specialni konstrukce pouziva procmail jako rozsireni:
^ nebo $ Odpovida novemu radku (u viceradkovych porovnani).
^^ Zakotvi vyraz na uplnem zacatku porovnavane oblasti, resp. na
jejim uplnem konci je-li tato kombinace nalezena na konci
vyrazu.
\< nebo \>
Porovnani se shoduje se znakem pred anebo za slovem. Tyto
specialni vyrazy jsou pouhym synonymem pro '[^a-zA-Z0-9_]',
ale shoda nastane i pro znak 'novy radek'. Jelikoz tyto sym-
boly se shoduji se skutecnymi znaky, lze je pouzit pouze k
oddeleni slov, nikoli pro odliseni mezer mezi slovy.
\/ Rozdeluje vyraz na dve casti. Vsechno co se shoduje v prave
casti se priradi promenne MATCH.
PRIKLADY
Viz manualova stranka procmailex(5).
VAROVANI
Akcni radek, ktery pokracuje na dalsim radku musi vzdycky koncit
obracenym lomitkem, dokonce ani kdyby spousteny shell nepotreboval nebo
nechtel, aby obracene lomitko takovy radek oznacovalo. Duvod spociva v
dvoufazovem procesu analyzy radku (nejdriv procmail, potom shell (nebo
take ne, v zavislosti na SHELLMETAS)).
Nedavejte na podminkove radky s regularnimi vyrazy zadne komentare,
protoze cely radek je kompletne predan internimu egrepu (krome
pokracovacich obracenych lomitek na konci radku).
Uvodni mezera na radku na nemz pokracuje regularni vyraz je obvykle
ignorovana (takze muzete pokracovani odsadit), ale nikoliv na
pokracovacich radcich, na nichz jsou provadeny substituce podle pravi-
del pro substituce uvnitr dvojitych zavorek sh(1).
Davejte si pozor na zacykleni pri provadeni nezdravych veci, jako treba
odeslani zpravy (forward) na svuj vlastni ucet. Zacykleni muze byt
preruseno spravnym pouzitim LOCKTIMEOUT.
Jakekoliv implicitni (standardni) hodnoty, ktere ma procmail pro
nektere promenne vzdycky prepisi uz definovane hodnoty. Pokud chcete
implicitni hodnoty s jistotou zmenit, musite nove hodnoty definovat v
konfiguracnim souboru, nebo jako parametr na prikazovem radku.
Promenne nastavene uvnitr akce typu '|' spoustene shellem si neza-
chovavaji sve hodnoty po ukonceni predpisu jelikoz jsou nastaveny v
podrizenem shellu spustenem procmailem. Chcete-li mit jistotu, ze si
promenna podrzi svou hodnotu,, musite provest prirazeni jeste pred uvo-
zujicim '|' predpisu.
Pokud definujete v dorucujicim predpisu priznak 'h' nebo 'b' a dojde ke
shode podminky, pak, pokud jste nedefinovali zaroven priznak 'c', telo
zpravy resp. zahlavi bude bez varovani ztraceno.
VIZ TEZ
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)
CHYBY
Procmail je schopen sam o sobe provadet substituce promennych pouze to-
hoto typu: $jmeno, ${jmeno}, ${jmeno:-text}, ${jmeno:+text}, ${jmeno-
text}, ${jmeno+text}, $#, $n, $$, $?, $_, $- a $=; pricemz za $_ bude
dosazeno jmeno aktualniho konfiguracniho souboru, za $- $LASTFOLDER a
$= bude obsahovat vysledek posledniho predpisu. Kdyz jsou pouzity vol-
by -a nebo -m za "$@" se dosadi prislusny parametr (resp. seznam).
Ovsem pouze je-li predavan v seznamu parametru nejakemu programu.
Procmail nepodporuje substituci '~'.
Pri zpracovavani konfiguracniho souboru se pouziva radkova vyrovnavaci
pamet (radkovy buffer) o delce $LINEBUF. Jakekoliv rozsireni zpra-
covavaneho radku pri substitucich se musi vejit do tohoto limitu; pokud
ne, dojde k nedefinovanemu chovani programu.
Pokud ma globalni semafor (zamek) relativni cestu, a aktualni adresar
neni ten v nemz byl semafor vytvoren, potom semafor nebude odstranen
pokud procmail v tomto miste skonci (reseni: pro globalni semafor
pouzivejte absolutni cestu).
Lokalni semafor v predpisu, ktery otevira vnoreny blok nebude fungovat
tak jak cekate.
Pri ulozeni obsahu standardniho vystupu do promenne bude odstranen
prave jeden koncovy znak 'novy radek'.
RUZNE
Pokud regularni vyraz obsahuje '^TO', bude tento retezec nahrazen vyra-
zem '(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope
|Apparently(-Resent)?)-To):(.*[^a-zA-Z])?)', coz by melo zachytit
vsechny mozne specifikace adresata.
Pokud regularni vyraz obsahuje '^FROM_DAEMON', bude to nahrazeno vyra-
zem '(^(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].*)?$[^>]))', coz by melo zachytit zpravy odeslane vetsinou
demonu.
Pokud regularni vyraz obsahuje '^FROM_MAILER', bude to nahrazeno vyra-
zem '(^(((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].*)?$[^>])' (orezana verze '^FROM_DAEMON'), coz by melo zachytit
zpravy od vetsiny postovnich demonu.
Pro prirazeni logickych hodnot promennym jako VERBOSE, DELIVERED nebo
COMSAT procmail akceptuje jako logickou jednicku jakykoliv retezec,
ktery zacina: nenulovou hodnotou, slovem 'on', 'y', 't' nebo 'e'. Ne-
pravda (logicka 0) je jakykoliv retezec zacinajici nulovou hodnotou,
'off', 'n', 'f' nebo 'd'.
Pokud akcni radek predpisu specifikuje program, pak radek skladajici se
z pouhe dvojice zpetne lomitko-novy radek na jinak prazdnem radku bude
preveden na znak novy radek.
POZNAMKY
Jelikoz v konfiguracnim souboru se vseobecne ignoruji uvodni bile znaky
bez uvozovek, muzete je vyuzit zcela dle sve chuti k odsazovani textu.
Uvodni '|' na zacatku akcniho radku, ktere specifikuje program nebo
filtr se odreze jeste pred testovanim radku na pritomnost SHELLMETAS.
Soubory zahrnute direktivou INCLUDERC a obsahujici pouze prirazeni do
promennych mohou byt sdileny s sh.
Chcete-li opravdu komplikovane zpracovani, muzete zvazit dokonce rekur-
zivni volani procmailu.
AUTOR
Stephen R. van den Berg, RWTH-Aachen, Germany
berg@pool.informatik.rwth-aachen.de
BuGless 1994/10/31 PROCMAILRC(5)