Provided by:
manpages-pl_20060617-3_all 
NAZWA
procmail - autonomiczny procesor poczty
SK/LADNIA
procmail [-ptoY] [-f od_kogo]
[parametr=warto | plik_rc] ...
procmail [-toY] [-f fromwhom] [-a argument] ...
-d odbiorca ...
procmail [-ptY] -m [parametr=warto] ... rcfile
[argument] ...
procmail -v
OPIS
Szybk orientacj w temacie mona uzyska czytajc umieszczone na kocu
UWAGI.
Procmail powinien by wywolywany automatycznie, korzystajc z mechanizmu
.forward w momencie przybycia listu. Alternatywnie, gdy jest
zainstalowany przez administratora systemu, moe by wywolywany
bezporednio przez program pocztowy (mailer). Po wywolaniu, najpierw
ustawia na wartoci domylne pewne zmienne rodowiskowe, odczytuje wiadomo
pocztow ze stdin (do EOF), oddziela jej tre od naglowka, a nastpnie,
jeli nie podano argumentow wiersza polece, zaczyna szuka pliku o nazwie
$HOME/.procmailrc. Stosownie do regul przetwarzania zawartych w tym
pliku wieo otrzymana wiadomo pocztowa zostaje umieszczona we wlaciwym
katalogu. Jeli nie istnieje plik rc, lub jego przetwarzanie dojdzie do
koca, procmail zapisze wiadomo w domylnej skrzynce pocztowej (mailbox)
systemu.
Jeli nie podano ani pliku rc, ani opcji -p w wierszu polece, to program
przed odczytaniem $HOME/.procmailrc zinterpretuje polecenia zawarte w
/etc/procmailrc (o ile istniej). Podczas tworzenia /etc/procmailrc
trzeba uwaa, poniewa jeli warunki na to pozwol, zostanie on uruchomiony
z prawami roota (w przeciwiestwie do pliku $HOME/.procmailrc).
Jeli procmail zostanie uruchomiony z uprawnieniami roota lub jako suid
root, to moe pracowa jako agent dostarczania poczty (mail delivery
agent), z poszerzonymi moliwociami, wstecznie zgodny.
Mona go te wykorzystywa jako uniwersalny filtr pocztowy, tzn.
poczyniono pewne kroki, by procmail mogl by wywolywany w specjalnej
regule sendmaila.
Format pliku rc jest opisany szczegolowo na stronie podrcznika
procmailrc(5).
Technika punktowania waonego jest szczegolowo opisana na stronie
procmailsc(5).
Przyklady plikow rc mona obejrze na stronie procmailex(5).
Sygna/ly
TERMINATE Koczy przedwczenie i ponownie kolejkuje wiadomo.
HANGUP Koczy przedwczenie i odbija wiadomo do nadawcy.
INTERRUPT Koczy przedwczenie i odbija wiadomo do nadawcy.
QUIT Koczy przedwczenie i milczco traci wiadomo.
ALARM Wymusza przekroczenie limitu czasu (zobacz TIMEOUT).
USR1 Rownowanik VERBOSE=off.
USR2 Rownowanik VERBOSE=on.
OPCJE
-v Procmail wypisuje swoj numer wersji, wywietla wkompilowan
konfiguracj i koczy dzialanie.
-p Zachowuje stare rodowisko. Normalnie procmail czyci rodowisko
podczas startu, poza wartoci TZ. Jednak w kadym wypadku: wszelkie
wartoci domylne przesloni uprzednio istniejce zmienne rodowiskowe,
tzn. procmail nie bdzie zwracal uwagi na adne predefiniowane
zmienne rodowiskowe, lecz nadpisze je swoimi wartociami domylnymi.
List zmiennych rodowiskowych procmaila mona znale na stronie
podrcznika procmailrc(5). Jeli podano zarowno -p jak i -m, lista
ustawianych zmiennych ogranicza si do zaledwie: LOGNAME, HOME,
SHELL, ORGMAIL i MAILDIR.
-t Powoduje, e procmail zawodzi lagodnie, np. jeli nie moe dostarczy
przesylki do adnego z podanych mu celow, wiadomo nie zostanie
odbita, lecz powroci do kolejki poczty. W przyszloci zostanie
dokonana ponowna proba dostarczenia.
-f fromwhom
Powoduje, e procmail ponownie generuje pocztkow lini `From ' z
wartoci fromwhom jako wysylajcym (zamiast -f mona uy
alternatywnego i przedawnionego -r). Jeli fromwhom sklada si z
pojedynczego `-', to program tylko odwiey znacznik czasu w linii
`From ' (o ile jest obecny, jeli nie, to utworzy nowy).
-o Zamiast pozwoli komukolwiek na generowanie linii `From ', po
prostu przesloni falszywki.
-Y Zaklada, e do mamy czynienia z tradycyjnym Berkeley'owskim
formatem mailboxa, ignoruje wszelkie pola Content-Length:.
-a argument
Ustawia $1 na warto argumentu. Kade nastpne -a argument ustawi
zmienn o kolejnym numerze ($2, $3 itd.). Moe by uywane do
przekazywania metainformacji do procmaila. Zazwyczaj wykonuje si
to przez przesylanie informacji $@x z reguly sendmaila.
-d odbiorca ...
Wlcza jawny tryb dostarczania. Dostarczenie nastpi do lokalnego
odbiorcy, oznaczonego jako odbiorca. Jest to oczywicie moliwe
tylko jeli procmail ma prawa roota (lub efektywne prawa euid i
egid odbiorcy). Procmail bdzie si suidowal do podanych odbiorcow i
dostarczal poczt tak, jakby zostal wywolany przez danego odbiorc
bez argumentow (tzn. jeli nie znaleziono pliku rc, dostarczanie
zachodzi jak w zwyczajnej poczcie). Opcja ta jest niezgodna z -p.
-m Zmienia procmail w filtr pocztowy ogolnego przeznaczenia. W tym
trybie trzeba przekaza jeden plik rc w wierszu polece. Po pliku rc
procmail przyjmie nieograniczon liczb argumentow. Jeli plik rc
jest nazw ze ciek absolutn, zaczynajc si od /etc/procmailrcs/, bez
odwola wstecznych (np. katalog rodzicielski nie moe by
wymieniony), to procmail sprobuje, jeeli nie napotka narusze
bezpieczestwa, zidentyfikowa wlaciciela tego pliku (lub dowizania
symbolicznego). Zaawansowane zastosowania tej opcji mona znale w
sekcji PRZYK/LADY poniej.
ARGUMENTY
Wszelkie argumenty zawierajce '=' s uwaane za przypisania wartoci
zmiennym rodowiskowym. Wszystkie one zostan obliczone po przypisaniu
wartoci domylnych, a przed otwarciem pierwszego pliku rc.
Wszelkie inne argumenty s uwaane za cieki pliku rc: albo absolutne,
albo, jeli zaczynaj si od `./', wzgldne, w odniesieniu do biecego
katalogu. Wszelkie inne cieki wzgldne s uwaane za podane wzgldem
katalogu $HOME, chyba e uyto opcji -m. Wowczas wszystkie cieki wzgldne
odnosz si do biecego katalogu. Procmail zacznie od pierwszej cieki,
ktor znajdzie w wierszu polece. Nastpne zostan przetworzone tylko
wtedy, jeli poprzednie nie maj odpowiadajcego wpisu HOST-directive, lub
w wypadku gdy nie istniej.
Jeli nie poda si plikow rc, procmail zaglda do $HOME/.procmailrc. Jeli
nawet tego nie dalo si znale, przetwarzanie bdzie kontynuowane zgodnie
z domylnymi ustawieniami zmiennych rodowiskowych i zmiennych podanych w
wierszu polece.
PRZYK/LADY
Przyklady plikow rc mona obejrze na stronie procmailex(5). Maly
fragment pliku rc mona znale w sekcji UWAGI, poniej.
Pomi reszt tej sekcji, chyba e jeste administratorem, ktory ma jakie
pojcie o skladni sendmail.cf.
Opcja -m jest zazwyczaj uywana gdy procmail jest wywolywany przez regul
pliku sendmail.cf. Aby moc tego dokona, dobrze jest utworzy dodatkowy
wpis o programie dostarczajcym poczt `procmail' w pliku sendmail.cf
(poza ju obecnym mailerem `local', ktory uruchamia procmaila). Aby
utworzy taki wpis, sugeruj co takiego:
Mprocmail, P=/usr/bin/procmail, F=mSDFMhun, S=11, R=21,
A=procmail -m $h $f $u
Umoliwi to wykorzystanie do filtrowania poczty poprzez mailer procmail
regul podobnych do poniszej (prawdopodobnie w zestawie regul (ruleset)
0). Zwro uwag na poczatkow tabulacj oznaczajc kontynuacj reguly i
tabulacj sluc do oddzielenia komentarzy:
R$*<@some.where>$*
$#procmail $@/etc/procmailrcs/some.rc $:$1@some.where.procmail$2
R$*<@$*.procmail>$*
$1<@$2>$3 Ju przefiltrowane, odwzoruj z powrotem
A plik etc/procmailrcs/some.rc moe by taki:
SENDER = "<$1>" # poprawienie pustego adresu nadawcy
SHIFT = 1 # usunicie go z $@
:0 # Spu do muszli cal poczt mieciow ;)
* ^Subject:.*junk
/dev/null
:0 w # przeka reszt przesylek dalej
! -oi -f "$SENDER" "$@"
Uwaaj gdy z wntrza pliku /etc/procmailrcs/some.rc wysylasz listy: jeli
wylesz je na adresy, ktore odpowiadaj znowu pierwszej regule, moesz
utworzy nieskoczon ptl.
PLIKI
/etc/passwd do ustawiania domylnych wartoci zmiennych
LOGNAME, HOME i SHELL odbiorcy
/var/mail/$LOGNAME systemowa skrzynka pocztowa; zarowno skrzynka
systemowa, jak i katalog, w ktorym si ona
znajduje, bd tworzone za kadym razem, gdy
procmail startuje, a ktore z nich nie istnieje
/etc/procmailrc pocztkowy ogolnosystemowy plik rc
/etc/procmailrcs/ cieka specjalnych uprawnie do plikow rc
$HOME/.procmailrc domylny plik rc
/var/mail/$LOGNAME.lock
plik blokujcy systemowej skrzynki pocztowej (nie
jest automatycznie uywany przez procmail, chyba
e $DEFAULT jest rowne /var/mail/$LOGNAME, a
procmail dostarcza co do $DEFAULT)
/usr/sbin/sendmail domylny program ekspedycji poczty (forwarder)
_????`hostname` tymczasowe `unikatowe' pliki zerowej dlugoci
tworzone przez procmail
ZOBACZ TAKE
procmailrc(5), procmailsc(5), procmailex(5), sh(1), csh(1), mail(1),
mailx(1), uucp(1), aliases(5), sendmail(8), egrep(1), grep(1), biff(1),
comsat(8), lockfile(1), formail(1), cron(1)
DIAGNOSTYKA
Autoforwarding mailbox found (Znaleziono skrzynk auto-przekazujc)
Skrzynka systemowa miala ustawiony bit suid lub
sgid, procmail koczy z EX_NOUSER, zakladajc e do
tej skrzynki nie wolno dostarcza poczty.
Bad substitution of "x" (Zle podstawienie "x")
Nie podano prawidlowej nazwy zmiennej
rodowiskowej.
Closing brace unexpected (Niespodziewane zamknicie nawiasu)
Nie bylo odpowiadajcego nawiasu otwierajcego
(zagniedenie bloku).
Conflicting options (Kolidujce opcje)
Nie wszystkie kombinacje opcji s uyteczne
Conflicting x suppressed (Zlikwidowane kolidujce x)
Flaga x nie da si pogodzi z innymi flagami tej
reguly.
Couldn't create "x" (Nieudane utworzenie "x")
Brakowalo skrzynki systemowej i nie dalo si jej
bylo utworzy.
Couldn't create maildir part "x" (Nieudane utworzenie czci "x" katalogu
poczty)
W katalogu pocztowym "x" brakuje jednego lub
wicej koniecznych podkatalogow, a procmail nie
mogl ich utworzy.
Couldn't create or rename temp file "x" (Nieudane utworzenie lub
przemianowanie tymczasowego pliku "x")
Wystpil bld w mechanizmie dostarczania wiadomoci
do katalogu pocztowego "x".
Couldn't determine implicit lockfile from "x" (Nie mona okreli jawnego
pliku blokady z "x")
Nie znaleziono przekierowa `>>', uywa zwyczajnie
`$LOCKEXT' jako lokalnego pliku blokujcego
(locallockfile).
Couldn't read "x" (Nieudany odczyt "x")
Procmail nie byl w stanie otworzy pliku rc albo
nie byl to zwyczajny plik lub te program nie
mogl otworzy katalogu MH, by znale plik o
najwyszym numerze.
Couldn't unlock "x" (Nieudane odblokowanie "x")
Plik blokujcy ju zniknl lub odebrano prawa
zapisu do jego katalogu.
Deadlock attempted on "x" (Proba zakleszczenia na "x")
Lokalny plik blokujcy (locallockfile) podany w
tej regule jest rowny nadal aktywnemu $LOCKFILE.
Denying special privileges for "x" (Odmowa specjalnych uprawnie dla
"x")
Procmail nie przybierze tosamoci narzucanej mu
plikiem rc, poniewa wykryto pogwalcenie
bezpieczestwa (np. -p lub przypisania zmiennych
w wierszu polece) albo program mial zbyt male
uprawnienia by moc to zrobi.
Descriptor "x" was not open (Deskryptor "x" nie byl otwarty)
Podczas startu procmaila nie byly przylczone
stdin, stdout lub stderr (prawdopodobnie proba
zlamania bezpieczestwa).
Enforcing stricter permissions on "x" (Wymuszenie bardziej
restrykcyjnych uprawnie do "x")
Systemowa skrzynka pocztowa odbiorcy byla
niezabezpieczona, procmail j zabezpieczyl.
Error while writing to "x" (Bld podczas zapisu do "x")
Nieistniejcy katalog, brak praw zapisu, padl
potok lub przepelniony dysk.
Exceeded LINEBUF (Przekroczone LINEBUF)
Wykryto przepelnienie bufora, LINEBUF byl zbyt
maly, ustawiono PROCMAIL_OVERFLOW.
MAILDIR is not an absolute path (MAILDIR nie jest ciek absolutn)
MAILDIR path too long (cieka MAILDIR zbyt dluga)
ORGMAIL is not an absolute path (ORGMAIL nie jest ciek absolutn)
ORGMAIL path too long (cieka ORGMAIL zbyt dluga)
default rcfile is not an absolute path (domylny plik rc nie jest ciek
absolutn)
default rcfile path too long (zbyt dluga cieka do domylnego pliku rc)
Pelna cieka do podanego elementu, po rozwiniciu
wszystkich linkow, ma dlugo wiksz ni LINEBUF lub
nie zaczyna si od znaku separatora plikow.
Excessive output quenched from "x" (Stlumiono nadmierne wyjcie z "x")
Program lub filtr "x" probowal wyprodukowa zbyt
wiele wyjcia dla biecego bufora LINEBUF, reszta
zostala pominita i ustawiono zmienn
PROCMAIL_OVERFLOW.
Extraneous x ignored (Nie zwizane x zignorowane)
Linia akcji lub inne flagi tej reguly odbieraj
fladze x znaczenie.
Failed forking "x" (Nieudane rozwidlenie "x")
Tabela procesow jest pelna (i wykorzystano
RORESRETRY).
Failed to execute "x" (Nieudane wykonanie "x")
Program nie znajduje si w ciece lub nie jest
wykonywalny.
Forced unlock denied on "x"
Brak praw zapisu do katalogu, w ktorym znajduje
si plik blokujcy lockfile "x", albo w tym samym
czasie probuje wymusi blokowanie wicej ni jeden
procmail.
Forcing lock on "x" Plik Lockfile "x" zostanie usunity sil, poniewa
nastpilo przekroczenie limitu czasu (zobacz
take: LOCKTIMEOUT).
Incomplete recipe Znaleziono pocztek reguly, lecz nie zostala
zakoczona przed EOF.
Insufficient privileges
Procmail wymaga uprawnie roota lub musi mie
okrelony (e)udi, (e)gid w trybie dostarczania.
Wiadomoci bd odbijane (zwracane nadawcy).
Invalid regexp "x" (Niepoprawne wyra. regularne "x")
Wyraenie regularne "x" zawiera bldy
(najprawdopodobniej brakujce lub nadmiarowe
nawiasy).
Kernel-lock failed (Bld blokowania za porednictwem funkcji jdra)
Podczas proby uycia obslugiwanych przez jdro
wywola blokujcych, ktore z nich nie powiodlo si
(zwykle wskazuje to na bld systemu), procmail
ignoruje ten bld i dziala dalej.
Kernel-unlock failed (Bld odblokowania za porednictwem funkcji jdra)
Zobacz wyej.
Lock failure on "x" (Bld blokowania "x")
Moe si pojawi tylko jeli podasz jakie naprawd
dziwne (i niedozwolone) nazwy plikow blokujcych,
lub jeli nie mona bylo utworzy pliku lockfile z
powodu braku uprawnie lub nieistniejcych
podkatalogow.
Lost "x" (Zgubiono "x")
Procmail probowal sklonowa si, lecz nie mogl
znale pliku rc "x" (zostal przeniesiony lub byl
ciek wzgldn, a zmienile katalog od ostatniego
otwarcia go przez procmaila).
Missing action (Brak akcji)
Bieca regula nie jest kompletna.
Missing closing brace (Brak nawiasu zamykajcego)
Rozpoczto zagniedony blok, ale go nie zakoczono.
Missing name (Brak nazwy)
Opcja -f wymaga dodatkowego argumentu.
Missing argument (Brak argumentu)
Podale opcj -a, lecz zapomniale argumentu.
Missing rcfile (Brak pliku rc)
Podale opcj -m, procmail oczekuje nazwy pliku rc
jako argumentu.
Missing recipient (Brak odbiorcy)
Podale opcj -d lub wywolale procmail pod inn
nazw, program oczekuje przynajmniej jednego
odbiorcy jako argumentu.
No space left to finish writing "x" (Brak miejsca na dokoczenie zapisu
"x")
System plikow zawierajcy "x" nie ma do wolnego
miejsca, aby umoliwi dostarczenie wiadomoci do
pliku.
Out of memory (Brak pamici)
Systemowi brakuje swapu (a wyczerpano
NORESRETRY).
Processing continued (Kontynuowanie przetwarzania)
Nierozpoznane opcje wierszu polece s ignorowane,
kontynuowanie jak zwykle.
Program failure (nnn) of "x" (Bld programu (nnn) na "x")
Program uruchomiony przez procmaila zwrocil nnn
zamiast EXIT_SUCCESS (=0); Jeli nnn jest ujemne,
to jest to sygnalem, e program umarl.
Quota exceeded while writing "x" (Podczas zapisu "x" przekroczono
ograniczenie udzialu dyskowego)
Ograniczenie wielkoci pliku (quota) w systemie
plikow odbiorcy zawierajcym "x" nie pozwala na
dostarczenie danej wiadomoci do pliku.
Renaming bogus "x" into "x"
Systemowa skrzynka pocztowa odbiorcy okazala si
by zmylona, procmail wykonal dzialania
wymijajce.
Rescue of unfiltered data succeeded/failed (Ratowanie
nieprzefiltrowanych danych pomylne/nieudane)
Filtr zakoczyl prac niepomylnie, procmail
probowal odzyska oryginalny tekst.
Skipped: "x" (Pominito: "x")
Program nie mogl nic zrobi z "x" w pliku rc (bld
skladni), ignoruje to.
Suspicious rcfile "x" (Podejrzany plik rc "x")
Wlaciciel pliku rc nie byl odbiorc ani rootem,
plik byl dostpny do zapisu dla wszystkich, lub
zawierajcy go katalog byl zapisywalny dla
wszystkich, lub byl to domylny plik rc
($HOME/.procmailrc) i albo ten plik, albo
zawierajcy go katalog byly zapisywalne przez
grup. (Plik rc nie zostal uyty).
Terminating prematurely whilst waiting for ... (Przedwczesne zakoczenie
podczas oczekiwania na ...)
Procmail otrzymal sygnal podczas oczekiwania na
...
Timeout, terminating "x"
W filtrze lub programie "x" nastpilo
przekroczenie limitu czasu.
Timeout, was waiting for "x"
W programie, filtrze lub pliku "x" nastpilo
przekroczenie limitu czasu. Jeli byl to program
lub filtr, to wyglda na to, e ju nie dziala.
Truncated file to former size
Plik nie mogl by szczliwie dostarczony, wic
zostal skrocony do poprzedniej wielkoci.
Truncating "x" and retrying lock
"x" nie wydaje si by prawidlow nazw pliku lub
plik nie jest pusty.
Unable to treat as directory "x" (Niemoliwe traktowanie jako katalogu
"x")
Albo przyrostek katalogu "x" wskazuje na to, e
powinien to by MH lub katalog wiadomoci
pocztowych (maildir), albo zostal on wymieniony
jako drugi katalog, do ktorego naley wykona
dowizanie, ale ju istnieje i nie jest to
katalog.
Unexpected EOL (Niespodziewany EOL)
Brak zamykajcego cytatu lub proba ucieczki EOF.
Unknown user "x" (Nieznany uytkownik "x")
Podany odbiorca nie ma odpowiadajcego mu uid.
ROZSZERZONA DIAGNOSTYKA
Rozszerzon diagnostyk mona wlcza i wylcza ustawieniem zmiennej VERBOSE.
[pid] time & date Pid i timestamp procmaila. Generowane za kadym
razem gdy procmail loguje diagnostyk, gdy
uplynla chocia sekunda od ostatniego timestampu.
Acquiring kernel-lock Procmail probuje zablokowa przez jdro ostatnio
otwarty plik (deskryptor).
Assigning "x" Przyznanie wartoci zmiennej rodowiskowej.
Assuming identity of the recipient, VERBOSE=off
Porzucenie wszystkich uprawnie (jeli jakie
byly), bezwarunkowo wylcza rozszerzon
diagnostyk.
Bypassed locking "x" Katalog spool poczty nie byl dostpny
procmailowi, bazowal wylcznie na blokadach jdra.
Executing "x" Uruchamianie programu "x"; jeli jest on
uruchamiany bezporednio przez procmaila (bez
poredniej powloki), procmail pokae gdzie
oddzielil argumenty poprzez wstawienie
przecinkow.
HOST mismatched "x" Ten host byl nazwany "x", HOST zawieralo co
innego.
Locking "x" Tworzenie pliku blokujcego "x".
Linking to "x" Tworzenie dowizania twardego pomidzy folderami
katalogow.
Match on "x" Trafiony warunek.
Matched "x" Przyznano "x" warto MATCH.
No match on "x" Warunek nie pasowal, regula pominita.
Non-zero exitcode (nnn) by "x" (Niezerowy (nn) kod zakoczenia "x")
Program uruchomiony przez procmaila jako warunek
lub akcja przepisu z flag `W' zwrocil nnn
zamiast EXIT_SUCCESS (=0); sposob uycia wskazuje
na to, e nie jest to niespodziewana okoliczno.
Notified comsat: "$LOGNAME@offset:file"
Wyslano informacj do comsat/biff, e pojawila si
poczta dla uytkownika $LOGNAME pod `offsetem' w
pliku `file'.
Opening "x" Otwieranie pliku "x" dla dopisywania.
Rcfile: "x" Plik rc zmieniony na "x".
Reiterating kernel-lock
Podczas probowania ronych metod blokowania,
jedna z nich si nie powiodla. Procmail bdzie
iterowal od nowa, a wszystkie si nie powiod.
Score: added newtotal "x"
Ten warunek doloyl `dodatkowe' punkty, co dalo w
wyniku `now sum' punktacji.
Unlocking "x" Ponowne usuwanie pliku blokujcego (lockfile)
"x".
OSTRZEENIA
Powiniene utworzy skrypt powloki, ktory uywa lockfile(1) zanim
wywolasz swoj powlok pocztow na ktorymkolwiek pliku skrzynki pocztowej,
innym ni skrzynka systemowa (chyba, e twoja powloka pocztowa uywa tych
samych plikow blokujcych (lokalnych lub globalnych), ktore podale w
pliku rc).
W rzadkich przypadkach, gdy musisz ubi procmaila zanim zakoczy
dzialanie, uyj zwyklego polecenia kill (np. nie kill -9, zobacz sekcj
Sygna/ly dla sugestii), inaczej niektore pliki blokujce (lockfiles) mog
nie zosta usunite.
Strze si gdy uywasz opcji -t, jeli procmail jest cigle niezdolny do
dostarczenia poczty (np. przez nieprawidlowy plik rc), kolejka poczty
systemu moe si przepelni. Moe to zgorszy zarowno postmastera, jak i
innych uytkownikow.
Plik /etc/procmailrc moe by uruchamiany z prawami roota, wic bd bardzo
ostrony z tym, co tam wstawiasz. SHELL bdzie zgodny z powlok biecego
odbiorcy, wic jeli procmail ma wywolywa powlok, lepiej ustaw to wpierw
na bezpieczn warto. Zobacz take: DROPPRIVS.
Pamitaj, e jeli na plikach w /etc/procmailrcs/ dozwolony jest chown(1),
to mog one by chown-owane na roota (lub kogokolwiek innego) przez ich
obecnych wlacicieli. Dla maksymalnego bezpieczestwa upewnij si, e
katalog ten jest wykonywalny tylko dla roota.
Procmail nie jest wlaciwym narzdziem do wspolnego uytkowania jednej
skrzynki pocztowej przez wielu uytkownikow, jak to wystpuje w
przypadku, gdy masz jedno konto POP dla calej poczty w swojej domenie.
Da si to zrobi, jeli uda ci si skonfigurowa MTA tak, by dodawal
naglowki z danymi odbiorcy kopertowego, dziki ktorym procmail bdzie
wiedzial, dla kogo jest dana wiadomo, jednak zwykle nie jest to dobre
rozwizanie. By moe lepiej zbada, czy uywany MTA oferuje 'tabele
uytkownikow wirtualnych' (`virtual user tables') lub poszuka np.
funkcji `multidrop' (wielopunktowoci) fetchmaila.
B/LDY
Po usuniciu sil pliku blokujcego, procmail czeka $SUSPEND sekund zanim
utworzy nowy plik blokujcy, tak by inny proces, ktory chce usun stary
plik blokujcy nie usunl przypadkiem nowego.
Procmail uywa zwyklego sygnalu TERMINATE do zakoczenia filtrow, ktore
uciekly, lecz nie sprawdza czy filtr odpowiada na sygnal. Poza tym
wysyla sygnal tylko do filtra, nie do jego dzieci.
Kontynuowane pole Content-Length: nie jest prawidlowo obslugiwane.
Nowe linie osadzone w kontynuowanym naglowku powinny by pomijane
podczas dopasowywania zamiast by traktowane jako pojedyncza spacja, jak
to si dzieje obecnie.
R'ONE
Jeli w naglowku istnieje pole Content-Length: a nie podano flagi -Y,
procmail wykorzysta to pole do zgloszenia wlaciwego rozmiaru. Procmail
nie zmienia szerokoci pola.
Jeli nie ma pola Content-Length: lub jeli podano flag -Y, a procmail
dopisuje do zwyklych folderow pocztowych, to wszelkie linie ciala
wiadomoci, ktore wygldaj jak znaki pocztowe, s poprzedzane `>'
(rozbraja nieprawdziwe naglowki pocztowe). Wyraenie regularne uywane do
wyszukiwania tych znakow pocztowych to:
`\nFrom '
Jeli nazwa celu uyta w jawnym trybie dostarczania nie figuruje w
/etc/passwd, procmail zadziala tak, jakby tryb ten nie byl wlczony.
Jeli nie jest w jawnym trybie dostarczania, a uid, pod ktorym dziala
nie ma odpowiadajcego wpisu /etc/passwd, to HOME bdzie odpowiada /,
LOGNAME bdzie odpowiada #uid, SHELL bdzie odpowiada /bin/sh, a ORGMAIL
bdzie ustawione na /tmp/dead.leather.
Gdy procmail jest w jawnym trybie dostarczania, to bdzie generowal
pocztkowe linie `From ', jeli brak takowych. Jeli linia taka ju
istnieje, procmail pozostawi j bez zmian. Jeli procmail nie jest
wywolany z jednym z nastpujcych id uytkownika lub grupy: root, daemon,
uucp, mail, x400, network, list, lists lub news, lecz wci musi generowa
lub przyjmowa now lini `From ', to bdzie generowal dodatkow lini `>From
', pomagajc odroni falszywe listy. (?)
Ze wzgldow bezpieczestwa, w wypadkach gdy wlacicielem pliku rc jest
odbiorca lub root, a plik nie jest ogolnie zapisywalny, lub gdy
katalog, w ktorym on si znajduje nie jest ogolnie zapisywalny, procmail
bdzie uywal tylko plikow rc o nazwach bezwzgldnych lub wyznaczonych
wzgldem $HOME. Plik $HOME/.procmailrc ma dodatkowe ograniczenie: ani
on, ani katalog, w ktorym si znajduje, nie mog by zapisywalne przez
grup.
Jeli /var/mail/$LOGNAME jest zmylon skrzynk (np. nie naley do odbiorcy,
jest niezapisywalny, jest dowizaniem symbolicznym lub twrdym), procmail
podczas startu sprobuje zmieni jego nazw na zaczynajc si od
`BOGUS.$LOGNAME.' i koczc si numerem sekwencyjnym i-wzla. Jeli okae si
to niemoliwe, ORGMAIL nie bdzie mie wartoci pocztkowej i wskutek tego
bdzie zakazywa dostarczania bez naleytego pliku rc.
Jeli /var/mail/$LOGNAME jest ju prawidlow skrzynk, lecz ma zbyt slabe
prawa, procmail to poprawi. Aby zapobiec temu, ustaw bity u+x.
Podczas dostarczania do katalogow (lub folderow MH), nie musisz uywa
plikow blokujcych w celu zapobieenia zamieszaniu powodowanemu przez
kilka pracujcych naraz procmaili.
Dostarczanie do folderow MH jest troch bardziej czasochlonne ni
dostarczanie do normalnych katalogow lub mailboxow, poniewa procmail
musi poszuka nastpnego dostpnego numeru (zamiast korzystywania od razu
z gotowej nazwy pliku).
Przy ogolnym niepowodzeniu, procmail zwroci EX_CANTCREAT, chyba e
podana zostanie opcja -t- wowczas zwroci EX_TEMPFAIL.
Procmail skleja wszystkie kontynuowane pola naglowkowe, eby mona bylo w
spojniejszy sposob je `egrepowa'. Robi to jednak tylko wewntrznie -
podczas dostarczania poczty, lamania linii pojawi si w postaci
pierwotnej.
Jeli procmail jest wywolywany pod nazw nie zaczynajc si od `procmail'
(np. jeli jest dowizany do innej nazwy i wywolany pod tamt nazw), to
wlcza si w jawnym trybie dostarczania i oczekuje nazw odbiorcow jako
argumentow wiersza polece(tak, jakby bylo podane -d).
Powiadomienia comstat/biff s dokonywane za pomoc udp. S one wysylane
gdy procmail generuje wpis pliku z logiem. Komunikaty powiadamiania maj
nastpujcy rozszerzony format (lub tak zbliony, jaki tylko mona uzyska,
gdy ostateczne dostarczenie nie bylo do pliku):
$LOGNAME@offset_wiadomoci_w_mailboksie
:absolutna_cieka_do_mboxa
Kiedy tylko procmail otwiera plik, do ktorego dostarcza, uywa
konsekwentnie nastpujcych, dostarczanych przez jdro, strategii
blokowania: fcntl(2).
Procmail jest odporny na NFS i czysty na osmym bicie.
UWAGI
Wywolywanie procmaila z opcj -h lub -? spowoduje wywietlenie pomocy
wiersza polece oraz strony skroconej instrukcji flag regul.
Istnieje doskonale FAQ dla pocztkujcych dotyczce filtrow pocztowych (w
szczegolnoci procmaila). Jest prowadzone przez Nancy McGough
<nancym@ii.com>, a mona je otrzyma wysylajc na adres
mail-server@rtfm.mit.edu list z treci:
send usenet/news.answers/mail/filtering-faq
Jeli procmail nie jest zainstalowany w systemie jako domylny program
dostarczania poczty (zapytaj administratora), musisz si upewni, e jest
wywolywany, gdy przybywa poczta. W tym wypadku twoj $HOME/.forward
(uwaga, musi by dostpny do odczytu dla wszystkich) powinien zawiera
ponisz lini. Upewnij si, e wstawile pojedyncze i podwojne znaki
cytowania i - o ile w Twoim systemie nie dziala smrsh (SendMail
Restricted Shell) - musi to by absolutna cieka.
"|exec /usr/bin/procmail"
Niektore serwery pocztowe (np. exim) nie akceptuj powyszej skladni. W
tym przypadku naley uy:
|/usr/bin/procmail
Procmail moe by te wywolywany do przetworzenia ju wypelnionej skrzynki
systemowej. Moe to by uyteczne jeli nie chcesz lub nie moesz uywa pliku
$HOME/.forward (wowczas mona by wywolywa poniszy skrypt albo
periodycznie z crona(1) albo kadorazowo gdy zaczynasz czyta poczt):
#!/bin/sh
ORGMAIL=/var/mail/$LOGNAME
if cd $HOME &&
test -s $ORGMAIL &&
lockfile -r0 -l3600 .newmail.lock 2>/dev/null
then
trap "rm -f .newmail.lock" 1 2 3 15
umask 077
lockfile -l3600 -ml
cat $ORGMAIL >>.newmail &&
cat /dev/null >$ORGMAIL
lockfile -mu
formail -s procmail <.newmail &&
rm -f .newmail
rm -f .newmail.lock
fi
exit 0
Przyk/ladowy ma/ly $HOME/.procmailrc:
PATH=/usr/local/bin:/usr/bin:/bin
MAILDIR=$HOME/Mail #upewnij si, e istnieje
DEFAULT=$MAILDIR/mbox #kompletnie opcjonalne
LOGFILE=$MAILDIR/from #zalecane
:0:
* ^From.*berg
from_me
:0
* ^Subject:.*Flame
/dev/null
Inne przyklady regul plikow rc mona obejrze na stronie procmailex(5).
R'OD/LO
Program jest czci pakietu przetwarzania poczty procmail (v3.22),
dostpnego pod adresem http://www.procmail.org/ lub ftp.procmail.org w
pub/procmail/.
LISTA DYSKUSYJNA
Istnieje lista dyskusyjna dla pyta zwizanych z programami pakietu
procmail:
<procmail-users@procmail.org>
do wysylania pyta/odpowiedzi.
<procmail-users-request@procmail.org>
do zadania zapisania si.
Jeeli chcialby by informowany o nowych wersjach i oficjalnych latach,
wylij zgloszenie zapisania si do
procmail-announce-request@procmail.org
(jest to lista tylko do odczytu).
AUTORZY
Stephen R. van den Berg
<srb@cuci.nl>
Philip A. Guenther
<guenther@sendmail.com>
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.