Rechercher une page de manuel
procmail
Langue: pl
Version: \*(Dt (openSuse - 09/10/07)
Section: 1 (Commandes utilisateur)
Sommaire
NAZWA
procmail - autonomiczny procesor pocztySK£ADNIA
procmail [-ptoY] [-f fromwhom] [parameter=value | rcfile] ...procmail [-toY] [-f fromwhom] [-a argument] -d recipient ...
procmail [-ptY] -m [parameter=value] ... rcfile
[argument] ...
procmail -v
OPIS
Szybk± orientacjê w temacie mo¿na uzyskaæ czytaj±c umieszczone na koñcu UWAGI.Procmail powinien byæ wywo³ywany automatycznie, korzystaj±c z mechanizmu .forward w momencie przybycia listu. Alternatywnie, gdy jest zainstalowany przez administratora systemu, mo¿e byæ wywo³ywany bezpo¶rednio przez program pocztowy (mailer). Po wywo³aniu, najpierw ustawia na warto¶ci domy¶lne pewne zmienne ¶rodowiskowe, odczytuje wiadomo¶æ pocztow± ze stdin (do EOF), oddziela jej tre¶æ od nag³ówka, a nastêpnie, je¶li nie podano argumentów wiersza poleceñ, zaczyna szukaæ pliku o nazwie $HOME/.procmailrc. Stosownie do regu³ przetwarzania zawartych w tym pliku ¶wie¿o otrzymana wiadomo¶æ pocztowa zostaje umieszczona we w³a¶ciwym katalogu. Je¶li nie istnieje plik rc, lub jego przetwarzanie dojdzie do koñca, procmail zapisze wiadomo¶æ w domy¶lnej skrzynce pocztowej (mailbox) systemu.
Je¶li 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 uwa¿aæ, poniewa¿ je¶li warunki na to pozwol±, zostanie on uruchomiony z prawami roota (w przeciwieñstwie do pliku $HOME/.procmailrc).
Je¶li procmail zostanie uruchomiony z uprawnieniami roota lub jako suid root, to mo¿e pracowaæ jako agent dostarczania poczty (mail delivery agent), z poszerzonymi mo¿liwo¶ciami, wstecznie zgodny.
Mo¿na go te¿ wykorzystywaæ jako uniwersalny filtr pocztowy, tzn. poczyniono pewne kroki, by procmail móg³ byæ wywo³ywany w specjalnej regule sendmaila.
Format pliku rc jest opisany szczegó³owo na stronie podrêcznika procmailrc(5).
Technika punktowania wa¿onego jest szczegó³owo opisana na stronie procmailsc(5).
Przyk³ady plików rc mo¿na obejrzeæ na stronie procmailex(5).
Sygna³y
- TERMINATE
- Koñczy przedwcze¶nie i ponownie kolejkuje wiadomo¶æ.
- HANGUP
- Koñczy przedwcze¶nie i odbija wiadomo¶æ do nadawcy.
- INTERRUPT
- Koñczy przedwcze¶nie i odbija wiadomo¶æ do nadawcy.
- QUIT
- Koñczy przedwcze¶nie i milcz±co traci wiadomo¶æ.
- ALARM
- Wymusza przekroczenie limitu czasu (zobacz TIMEOUT).
- USR1
- Równowa¿nik VERBOSE=off.
- USR2
- Równowa¿nik VERBOSE=on.
OPCJE
- -v
- Procmail wypisuje swój numer wersji, wy¶wietla wkompilowan± konfiguracjê i koñczy dzia³anie.
- -p
- Zachowuje stare ¶rodowisko. Normalnie procmail czy¶ci ¶rodowisko podczas startu, poza warto¶ci± TZ. Jednak w ka¿dym wypadku: wszelkie warto¶ci domy¶lne przes³oni± uprzednio istniej±ce zmienne ¶rodowiskowe, tzn. procmail nie bêdzie zwraca³ uwagi na ¿adne predefiniowane zmienne ¶rodowiskowe, lecz szczê¶liwie nadpisze je swoimi warto¶ciami domy¶lnymi. Listê zmiennych ¶rodowiskowych procmaila mo¿na znale¼æ na stronie podrêcznika procmailrc(5). Je¶li podano zarówno -p jak i -m, lista preustawianych zmiennych ogranicza siê do zaledwie: LOGNAME, HOME, SHELL, ORGMAIL i MAILDIR.
- -t
- Powoduje, ¿e procmail zawodzi ³agodnie, np. je¶li nie mo¿e dostarczyæ przesy³ki do ¿adnego podanych mu celów, wiadomo¶æ nie zostanie odbita, lecz powróci do kolejki poczty. W przysz³o¶ci zostanie dokonana ponowna próba dostarczenia.
- -f fromwhom
- Powoduje, ¿e procmail ponownie generuje pocz±tkow± liniê `From ' z warto¶ci± fromwhom jako wysy³aj±cym (zamiast -f mo¿na u¿yæ alternatywnego i przedawnionego -r). Je¶li fromwhom sk³ada siê z pojedynczego `-', to program tylko od¶wie¿y znacznik czasu w linii `From ' (o ile jest obecny, je¶li nie, to utworzy nowy).
- -o
- Zamiast pozwoliæ komukolwiek na generowanie linii `From ', po prostu przes³oni fa³szywki.
- -Y
- Zak³ada, ¿e do mamy czynienia z tradycyjnym Berkeley'owskim formatem mailboxa, ignoruje wszelkie pola Content-Length:.
- -a argument
- Ustawia $1 na warto¶æ argumentu. Mo¿e byæ u¿ywane do przekazywania metainformacji do procmaila. Zazwyczaj wykonuje siê to przez przesy³anie informacji $@x z regu³y sendmaila.
- -d recipient ...
- W³±cza jawny tryb dostarczania. Dostarczenie nast±pi do lokalnego odbiorcy, oznaczonego jako recipient. Jest to oczywi¶cie mo¿liwe tylko je¶li procmail ma prawa roota (lub efektywne prawa euid i egid odbiorcy). Procmail bêdzie siê suidowa³ do podanych odbiorców i dostarcza³ pocztê tak, jakby zosta³ wywo³any przez danego odbiorcê bez argumentów (tzn. je¶li nie znaleziono pliku rc, dostarczanie zachodzi jak w zwyczajnej poczcie). Opcja ta jest niezgodna z -p.
- -m
- Zmienia procmail w filtr pocztowy ogólnego przeznaczenia. W tym trybie trzeba przekazaæ jeden plik rc w wierszu poleceñ. Po pliku rc procmail przyjmie nieograniczon± liczbê argumentów. Je¶li plik rc jest nazw± ze ¶cie¿k± absolutn±, zaczynaj±c± siê od /etc/procmailrcs/, bez odwo³añ wstecznych (np. katalog rodzicielski nie mo¿e byæ wymieniony), to procmail spróbuje, je¿eli nie napotka naruszeñ bezpieczeñstwa, zidentyfikowaæ w³a¶ciciela tego pliku (lub dowi±zania symbolicznego). Zaawansowane zastosowania tej opcji mo¿na znale¼æ w sekcji PRZYK£ADY poni¿ej.
ARGUMENTY
Wszelkie argumenty zawieraj±ce '=' s± uwa¿ane za przypisania warto¶ci zmiennym ¶rodowiskowym. Wszystkie one zostan± obliczone po przypisaniu warto¶ci domy¶lnych, a przed otwarciem pierwszego pliku rc.Wszelkie inne argumenty s± uwa¿ane za ¶cie¿ki pliku rc: albo absolutne, albo, je¶li zaczynaj± siê od `./', wzglêdne, w odniesieniu do bie¿±cego katalogu. Wszelkie inne ¶cie¿ki wzglêdne s± uwa¿ane za podane wzglêdem katalogu $HOME, chyba ¿e u¿yto opcji -m. Wówczas wszystkie ¶cie¿ki wzglêdne odnosz± siê do bie¿±cego katalogu. Procmail zacznie od pierwszej ¶cie¿ki, któr± znajdzie w wierszu poleceñ. Nastêpne zostan± przetworzone tylko wtedy, je¶li poprzednie nie maj± odpowiadaj±cego wpisu HOST-directive, lub w wypadku gdy nie istniej±.
Je¶li nie poda siê plików rc, procmail zagl±da do $HOME/.procmailrc. Je¶li nawet tego nie da³o siê znale¼æ, przetwarzanie bêdzie kontynuowane zgodnie z domy¶lnymi ustawieniami zmiennych ¶rodowiskowych i zmiennych podanych w wierszu poleceñ.
PRZYK£ADY
Przyk³ady plików rc mo¿na obejrzeæ na stronie procmailex(5). Ma³y fragment pliku rc mo¿na znale¼æ w sekcji UWAGI, poni¿ej.Pomiñ resztê tej sekcji, chyba ¿e jeste¶ administratorem, który ma jakie¶ pojêcie o sk³adni sendmail.cf.
Opcja -m jest zazwyczaj u¿ywana gdy procmail jest wywo³ywany przez regu³ê pliku sendmail.cf. Aby móc tego dokonaæ, dobrze jest utworzyæ dodatkowy wpis o programie dostarczaj±cym pocztê `procmail' w pliku sendmail.cf (poza ju¿ obecnym mailerem `local', który 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
Umo¿liwi to wykorzystanie do filtrowania poczty poprzez mailer procmail regu³ podobnych do poni¿szej (prawdopodobnie w zestawie regu³ (ruleset) 0). Zwróæ uwagê na poczatkow± tabulacjê oznaczaj±c± kontynuacjê regu³y i tabulacjê s³u¿±c± 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 mo¿e byæ taki:
- :0 # spu¶æ do muszli pocztê ¶mieciow± ;) * ^Subject:.*junk /dev/null
:0 # przeka¿ resztê przesy³ek dalej ! -oi -f "$@"
Uwa¿aj gdy z wnêtrza pliku /etc/procmailrcs/some.rc wysy³asz listy: je¶li wy¶lesz je na adresy, które odpowiadaj± znowu pierwszej regule, mo¿esz utworzyæ nieskoñczon± pêtlê.
PLIKI
- /etc/passwd
- do ustawiania domy¶lnych warto¶ci zmiennych LOGNAME, HOME i SHELL odbiorcy
- /var/spool/mail/$LOGNAME
- systemowa skrzynka pocztowa; zarówno skrzynka systemowa jak i katalog, w którym siê ona znajduje, bêd± tworzone za ka¿dym razem gdy procmail startuje a które¶ z nich nie istnieje
- /etc/procmailrc
- pocz±tkowy ogólnosystemowy plik rc
- /etc/procmailrcs/
- ¶cie¿ka specjalnych uprawnieñ do plików rc
- $HOME/.procmailrc
- domy¶lny plik rc
- /var/spool/mail/$LOGNAME.lock
- plik blokuj±cy systemowej skrzynki pocztowej (nie jest automatycznie u¿ywany przez procmail, chyba ¿e $DEFAULT jest równe /var/spool/mail/$LOGNAME, a procmail dostarcza co¶ do $DEFAULT)
- /usr/sbin/sendmail
- domy¶lny program ekspedycji poczty (forwarder)
- _????`hostname`
- tymczasowe `unikalne' pliki zerowej d³ugo¶ci tworzone przez procmail
ZOBACZ TAK¯E
procmailrc(5), 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), cron(1)DIAGNOSTYKA
- Autoforwarding mailbox found
- (Znaleziono skrzynkê auto-przekazuj±c±) Skrzynka systemowa mia³a ustawiony bit suid lub sgid, procmail koñczy z EX_NOUSER, zak³adaj±c ¿e do tej skrzynki nie wolno dostarczaæ poczty.
- Bad substitution of "x"
- (Z³e podstawienie "x") Nie podano prawid³owej nazwy zmiennej ¶rodowiskowej.
- Closing brace unexpected
- (Niespodziewane zamkniêcie nawiasu) Nie by³o odpowiadaj±cego nawiasu otwieraj±cego (zagni¿d¿enie bloku).
- Conflicting options
- (Koliduj±ce opcje) Nie wszystkie kombinacje opcji s± u¿yteczne.
- Conflicting x suppressed
- (Zlikwidowane koliduj±ce x) Flaga x nie da siê pogodziæ z innymi flagami tej regu³y.
- Couldn't create "x"
- (Nieudane utworzenie "x") Brakowa³o skrzynki systemowej i nie da³o siê jej by³o utworzyæ.
- Couldn't create maildir part "x"
- (Nieudane utworzenie czê¶ci "x" katalogu poczty) W katalogu pocztowym "x" brakuje jednego lub wiêcej koniecznych podkatalogów a procmail nie móg³ ich utworzyæ.
- Couldn't create or rename temp file "x"
- (Nieudane utworzenie lub przemianowanie tymczasowego pliku "x") W mechanice dostarczania wiadomo¶ci do katalogu pocztowego "x" wyst±pi³ b³±d.
- Couldn't determine implicit lockfile from "x"
- (Nie mo¿na okre¶liæ jawnego pliku blokady z "x") Nie znaleziono przekierowañ `>>', u¿ywa zwyczajnie `$LOCKEXT' jako lokalnego pliku blokuj±cego (locallockfile).
- Couldn't read "x"
- (Nieudany odczyt "x") Procmail nie by³ w stanie otworzyæ pliku rc albo nie by³ to zwyczajny plik lub te¿ program nie móg³ otworzyæ katalogu MH, by znale¼æ plik o najwy¿szym numerze.
- Couldn't unlock "x"
- (Nieudane odblokowanie "x") Plik blokuj±cy ju¿ znikn±³ lub odebrano prawa zapisu do jego katalogu.
- Deadlock attempted on "x"
- (Próba zakleszczenia na "x") Lokalny plik blokuj±cy (locallockfile) podany w tej regule jest równy nadal aktywnemu $LOCKFILE.
- Denying special privileges for "x"
- (Odmowa specjalnych uprawnieñ dla "x") Procmail nie przybierze to¿samo¶ci narzucanej mu plikiem rc, poniewa¿ wykryto pogwa³cenie bezpieczeñstwa (np. -p lub przypisania zmiennych w wierszu poleceñ) albo program mia³ zbyt ma³e uprawnienia by móc to zrobiæ.
- Descriptor "x" was not open
- (Deskryptor "x" nie by³ otwarty) Podczas startu procmaila nie by³y przy³±czone stdin, stdout lub stderr (prawdopodobnie próba z³amania bezpieczeñstwa).
- Enforcing stricter permissions on "x"
- (Wymuszenie bardziej restrykcyjnych uprawnieñ do "x") Systemowa skrzynka pocztowa odbiorcy by³a niezabezpieczona, procmail j± zabezpieczy³.
- Error while writing to "x"
- (B³±d podczas zapisu do "x") Nieistniej±cy katalog, brak praw zapisu, pad³ potok lub przepe³niony dysk.
- Exceeded LINEBUF
- (Przekroczone LINEBUF) Wykryto przepe³nienie bufora, LINEBUF by³ zbyt ma³y, ustawiono PROCMAIL_OVERFLOW.
- Excessive output quenched from "x"
- (St³umiono nadmierne wyj¶cie z "x") Program lub filtr "x" próbowa³ wyprodukowaæ zbyt wiele wyj¶cia dla bie¿±cego bufora LINEBUF, reszta zosta³a pominiêta.
- Extraneous x ignored
- (Nie zwi±zane x zignorowane) Linia akcji lub inne flagi tej regu³y odbieraj± fladze x znaczenie.
- Failed forking "x"
- (Nieudane rozwidlenie "x") Tabela procesów jest pe³na (i wykorzystano RORESRETRY).
- Failed to execute "x"
- (Nieudane wykonanie "x") Program nie znajduje siê w ¶cie¿ce lub nie jest wykonywalny.
- Forced unlock denied on "x"
- Brak praw zapisu do katalogu, w którym znajduje siê plik blokuj±cy lockfile "x", albo w tym samym czasie próbuje wymusiæ blokowanie wiêcej ni¿ jeden procmail.
- Forcing lock on "x"
- Plik Lockfile "x" zostanie usuniêty si³±, poniewa¿ nast±pi³o przekroczenie limitu czasu (zobacz tak¿e: LOCKTIMEOUT).
- Incomplete recipe
- Znaleziono pocz±tek regu³y, lecz nie zosta³a zakoñczona przed EOF.
- Insufficient privileges
- Procmail wymaga uprawnieñ roota lub musi mieæ okre¶lony (e)udi, (e)gid w trybie dostarczania. Wiadomo¶ci bêd± odbijane (zwracane nadawcy).
- Invalid regexp "x"
- Wyra¿enie regularne "x" zawiera b³êdy (najprawdopodobniej brakuj±ce lub nadmiarowe nawiasy).
- Kernel-lock failed
- Podczas próby u¿ycia obs³ugiwanych przez j±dro wywo³añ blokuj±cych, które¶ z nich nie powiod³o siê (zwykle wskazuje to na b³±d systemu), procmail ignoruje ten b³±d i dzia³a dalej.
- Kernel-unlock failed
- Zawiod³a próba odblokowania za po¶rednictwem funkcji j±dra. Zobacz wy¿ej.
- Lock failure on "x"
- Mo¿e siê pojawiæ tylko je¶li podasz jakie¶ naprawdê dziwne (i niedozwolone) nazwy plików blokuj±cych, lub je¶li nie mo¿na by³o utworzyæ pliku lockfile z powodu braku uprawnieñ lub nieistniej±cych podkatalogów.
- Lost "x"
- Procmail próbowa³ sklonowaæ siê, lecz nie móg³ znale¼æ pliku rc "x" (zosta³ przeniesiony lub by³ ¶cie¿k± wzglêdn±, a zmieni³e¶ katalog od ostatniego otwarcia go przez procmaila).
- Missing action
- (Brak akcji) Bie¿±ca regu³a nie jest kompletna.
- Missing closing brace
- (Brak nawiasu zamykaj±cego) Rozpoczêto zagnie¿d¿ony blok, ale go nie zakoñczono.
- Missing name
- (Brak nazwy) Opcja -f wymaga dodatkowego argumentu.
- Missing argument
- (Brak argumentu) Poda³e¶ opcjê -a, lecz zapomnia³e¶ argumentu.
- Missing rcfile
- (Brak pliku rc) Poda³e¶ opcjê -m, procmail oczekuje nazwy pliku rc jako argumentu.
- Missing recipient
- (Brak odbiorcy) Poda³e¶ opcjê -d lub wywo³a³e¶ procmail pod inn± nazw±, program oczekuje przynajmniej jednego odbiorcy jako argumentu.
- No space left to finish writing "x"
- System plików zawieraj±cy "x" nie ma do¶æ wolnego miejsca, aby umo¿liwi¶æ dostarczenie wiadomo¶ci do pliku.
- Out of memory
- Systemowi brakuje swapu (a wyczerpano NORESRETRY).
- Processing continued
- Nierozpoznane opcje wierszu poleceñ s± ignorowane, kontynuowanie jak zwykle.
- Program failure (nnn) of "x"
- Program uruchomiony przez procmaila zwróci³ nnn zamiast EXIT_SUCCESS (=0); Je¶li nnn jest ujemne, to jest to sygna³em, ¿e program umar³.
- Quota exceeded while writing "x"
- (Podczas zapisu "x" przekroczono ograniczenie udzia³u dyskowego) Ograniczenie wielko¶ci pliku (quota) w systemie plików odbiorcy zawieraj±cym "x" nie pozwala na dostarczenie danej wiadomo¶ci do pliku.
- Renaming bogus "x" into "x"
- Systemowa skrzynka pocztowa odbiorcy okaza³a siê byæ zmy¶lona, procmail wykona³ dzia³ania wymijaj±ce.
- Rescue of unfiltered data succeeded/failed
- (Ratowanie nieprzefiltrowanych danych pomy¶lne/nieudane) Filtr zakoñczy³ pracê niepomy¶lnie, procmail próbowa³ odzyskaæ oryginalny tekst.
- Skipped: "x"
- (Pominiêto: "x") Program nie móg³ nic zrobiæ z "x" w pliku rc (b³±d sk³adni), ignoruje to.
- Suspicious rcfile "x"
- (Podejrzany plik rc "x") W³a¶ciciel pliku rc nie by³ odbiorc± ani rootem, plik by³ dostêpny do zapisu dla wszystkich, lub zawieraj±cy go katalog by³ zapisywalny dla wszystkich, lub by³ to domy¶lny plik rc ($HOME/.procmailrc) i albo ten plik, albo zawieraj±cy go katalog by³y zapisywalne przez grupê. (Plik rc nie zosta³ u¿yty).
- Terminating prematurely whilst waiting for ...
- (Przedwczesne zakoñczenie podczas oczekiwania na ...) Procmail otrzyma³ sygna³ podczas oczekiwania na ...
- Timeout, terminating "x"
- W filtrze lub programie "x" nast±pi³o przekroczenie limitu czasu.
- Timeout, was waiting for "x"
- W programie, filtrze lub pliku "x" nast±pi³o przekroczenie limitu czasu. Je¶li by³ to program lub filtr, to wygl±da na to, ¿e ju¿ nie dzia³a.
- Truncated file to former size
- Plik nie móg³ byæ szczê¶liwie dostarczony, wiêc zosta³ skrócony do poprzedniej wielko¶ci.
- Truncating "x" and retrying lock
- "x" nie wydaje siê byæ prawid³ow± nazw± pliku lub plik nie jest pusty.
- Unable to treat as directory "x"
- (Niemo¿liwe traktowanie jako katalogu "x") Albo przyrostek katalogu "x" wskazuje na to, ¿e powinien to byæ MH lub katalog wiadomo¶ci pocztowych (maildir), albo zosta³ on wymieniony jako drugi katalog, do którego nale¿y wykonaæ dowi±zanie, ale ju¿ istnieje i nie jest to katalog.
- Unexpected EOL
- (Niespodziewany EOL) Brak zamykaj±cego cytatu lub próba ucieczki EOF.
- Unknown user "x"
- (Nieznany u¿ytkownik "x") Podany odbiorca nie ma odpowiadaj±cego mu uid.
ROZSZERZONA DIAGNOSTYKA
Rozszerzon± diagnostykê mo¿na w³±czaæ i wy³±czaæ ustawieniem zmiennej VERBOSE.- [pid] time & date
- Pid i timestamp procmaila. Generowane za ka¿dym razem gdy procmail loguje diagnostykê, gdy up³ynê³a chocia¿ sekunda od ostatniego timestampu.
- Acquiring kernel-lock
- Procmail próbuje zablokowaæ przez j±dro ostatnio otwarty plik (deskryptor).
- Assigning "x"
- Przyznanie warto¶ci zmiennej ¶rodowiskowej.
- Assuming identity of the recipient, VERBOSE=off
- Porzucenie wszystkich uprawnieñ (je¶li jakie¶ by³y), bezwarunkowo wy³±cza rozszerzon± diagnostykê.
- Bypassed locking "x"
- Katalog spool poczty nie by³ dostêpny procmailowi, bazowa³ wy³±cznie na blokadach j±dra.
- Executing "x"
- Uruchamianie programu "x"; je¶li jest on uruchamiany bezpo¶rednio przez procmaila (bez po¶redniej pow³oki), procmail poka¿e gdzie oddzieli³ argumenty poprzez wstawienie przecinków.
- HOST mismatched "x"
- Ten host by³ nazwany "x", HOST zawiera³o co¶ innego.
- Locking "x"
- Tworzenie pliku blokuj±cego "x".
- Linking to "x"
- Tworzenie dowi±zania twardego pomiêdzy folderami katalogów.
- Match on "x"
- Trafiony warunek.
- Matched "x"
- Przyznano "x" warto¶æ MATCH.
- No match on "x"
- Warunek nie pasowa³, regu³a pominiêta.
- Non-zero exitcode (nnn) by "x"
- Niezerowy kod zakoñczenia "x". Program uruchomiony przez procmaila jako warunek lub akcja przepisu z flag± `W' zwróci³ nnn zamiast EXIT_SUCCESS (=0); sposób u¿ycia wskazuje na to, ¿e nie jest to niespodziewana okoliczno¶æ.
- Notified comsat: "$LOGNAME@offset:file"
- Wys³ano informacjê do comsat/biff, ¿e pojawi³a siê poczta dla u¿ytkownika $LOGNAME pod `offsetem' w pliku `file'.
- Opening "x"
- Otwieranie pliku "x" dla dopisywania.
- Rcfile: "x"
- Plik rc zmieniony na "x".
- Reiterating kernel-lock
- Podczas próbowania ró¿nych metod blokowania, jedna z nich siê nie powiod³a. Procmail bêdzie iterowa³ od nowa, a¿ wszystkie siê nie powiod±.
- Score: added newtotal "x"
- Ten warunek do³o¿y³ `dodatkowe' punkty, co da³o w wyniku `now± sumê' punktacji.
- Unlocking "x"
- Ponowne usuwanie pliku blokuj±cego (lockfile) "x".
OSTRZE¯ENIA
Powiniene¶ utworzyæ skrypt pow³oki, który u¿ywa lockfile(1) zanim wywo³asz swoj± pow³okê pocztow± na którymkolwiek pliku skrzynki pocztowej, innym ni¿ skrzynka systemowa (chyba, ¿e twoja pow³oka pocztowa u¿ywa tych samych plików blokuj±cych (lokalnych lub globalnych), które poda³e¶ w pliku rc).W rzadkich przypadkach, gdy musisz ubiæ procmaila zanim zakoñczy dzia³anie, u¿yj zwyk³ego polecenia kill (np. nie kill -9, zobacz podsekcjê Sygna³y dla sugestii), inaczej niektóre pliki blokuj±ce (lockfiles) mog± nie zostaæ usuniête.
Strze¿ siê gdy u¿ywasz opcji -t , je¶li procmail jest ci±gle niezdolny do dostarczenia poczty (np. przez nieprawid³owy plik rc), kolejka poczty systemu mo¿e siê przepe³niæ. Mo¿e to zgorszyæ zarówno postmastera, jak i innych u¿ytkowników.
Plik /etc/procmailrc mo¿e byæ uruchamiany z prawami roota, wiêc b±d¼ bardzo ostro¿ny z tym, co tam wstawiasz. SHELL bêdzie zgodny z pow³ok± bie¿±cego odbiorcy, wiêc je¶li procmail ma wywo³ywaæ pow³okê, lepiej ustaw to wpierw na bezpieczn± warto¶æ. Zobacz tak¿e : DROPPRIVS.
Pamiêtaj, ¿e je¶li na plikach w /etc/procmailrcs/ dozwolony jest chown(1), to mog± one byæ chown-owane na roota (lub kogokolwiek innego) przez ich obecnych w³a¶cicieli. Dla maksymalnego bezpieczeñstwa upewnij siê, ¿e katalog ten jest wykonywalny tylko dla roota.
Procmail nie jest w³a¶ciwym narzêdziem do wspólnego u¿ytkowania jednej skrzynki pocztowej przez wielu u¿ytkowników, jak to wystêpuje w przypadku, gdy masz jedno konto POP dla ca³ej poczty w swojej domenie. Da siê to zrobiæ, je¶li uda ci siê skonfigurowaæ MTA tak, by dodawa³ nag³ówki z danymi odbiorcy kopertowego, dziêki którym procmail bêdzie wiedzia³, dla kogo jest dana wiadomo¶æ, jednak zwykle nie jest to dobre rozwi±zanie. Byæ mo¿e lepiej zbadaæ czy u¿ywany MTA oferuje 'tabele u¿ytkowników wirtualnych' (`virtual user tables') lub poszukaæ np. funkcji `multidrop' (wielopunktowo¶ci) Fetchmaila.
B£ÊDY
Po usuniêciu si³± pliku blokuj±cego, procmail czeka $SUSPEND sekund zanim utworzy nowy plik blokuj±cy, tak by inny proces, który chce usun±æ stary plik blokuj±cy nie usun±³ przypadkiem nowego.Procmail u¿ywa zwyk³ego sygna³u TERMINATE do zakoñczenia filtrów, które uciek³y, lecz nie sprawdza czy filtr odpowiada na sygna³. Poza tym wysy³a sygna³ tylko do filtra, nie do jego dzieci.
Kontynuowane pole Content-Length: nie jest prawid³owo obs³ugiwane.
RÓ¯NE
Je¶li w nag³ówku istnieje pole Content-Length: a nie podano flagi -Y, procmail wykorzysta to pole do zg³oszenia w³a¶ciwego rozmiaru. Procmail nie zmienia szeroko¶ci pola.Je¶li nie ma pola Content-Length: lub je¶li podano flagê -Y, a procmail dopisuje do zwyk³ych folderów pocztowych, to wszelkie linie cia³a wiadomo¶ci, które wygl±daj± jak znaki pocztowe, s± poprzedzane `>' (rozbraja nieprawdziwe nag³ówki pocztowe). Wyra¿enie regularne u¿ywane do wyszukiwania tych znaków pocztowych to:
- `\nFrom '
Je¶li nazwa celu u¿yta w jawnym trybie dostarczania nie figuruje w /etc/passwd, procmail zadzia³a tak, jakby tryb ten nie by³ w³±czony. Je¶li nie jest w jawnym trybie dostarczania, a uid, pod którym dzia³a nie ma odpowiadaj±cego wpisu /etc/passwd, to HOME bêdzie odpowiadaæ /, LOGNAME bêdzie odpowiadaæ #uid, a SHELL bêdzie odpowiadaæ /bin/sh.
Gdy procmail jest w jawnym trybie dostarczania, to bêdzie generowa³ pocz±tkowe linie `From ', je¶li brak takowych. Je¶li linia taka ju¿ istnieje, procmail pozostawi j± bez zmian. Je¶li procmail nie jest wywo³any z jednym z nastêpuj±cych id u¿ytkownika lub grupy : root, daemon, uucp, mail, x400, network, list, lists lub news, lecz wci±¿ musi generowaæ lub przyjmowaæ now± liniê `From ', to bêdzie generowa³ dodatkow± liniê `>From ', pomagaj±c± odró¿niæ fa³szywe listy. (?)
Ze wzglêdów bezpieczeñstwa, w wypadkach gdy w³a¶cicielem pliku rc jest odbiorca lub root, a plik nie jest ogólnie zapisywalny, lub gdy katalog, w którym on siê znajduje nie jest ogólnie zapisywalny, procmail bêdzie u¿ywa³ tylko plików rc o nazwach bezwzglêdnych lub wyznaczonych wzglêdem $HOME. Plik $HOME/.procmailrc ma dodatkowe ograniczenie: ani on, ani katalog, w którym siê znajduje, nie mog± byæ zapisywalne przez grupê.
Je¶li /var/spool/mail/$LOGNAME jest zmy¶lon± skrzynk± (np. nie nale¿y do odbiorcy, jest niezapisywalny, jest dowi±zaniem), procmail podczas startu spróbuje zmieniæ jego nazwê na zaczynaj±c± siê od `BOGUS.$LOGNAME.' i koñcz±c± siê numerem sekwencyjnym i-wêz³a. Je¶li oka¿e siê to niemo¿liwe, ORGMAIL nie bêdzie mieæ warto¶ci pocz±tkowej i wskutek tego bêdzie zakazywaæ dostarczania bez nale¿ytego pliku rc.
Je¶li /var/spool/mail/$LOGNAME jest ju¿ prawid³ow± skrzynk±, lecz ma zbyt s³abe prawa, procmail to poprawi. Aby zapobiec temu, ustaw bity u+x.
Podczas dostarczania do katalogów (lub folderów MH), nie musisz u¿ywaæ plików blokuj±cych w celu zapobie¿enia zamieszaniu powodowanemu przez kilka pracuj±cych naraz procmaili.
Dostarczanie do folderów MH jest trochê bardziej czasoch³onne ni¿ dostarczanie do normalnych katalogów lub mailboxów, poniewa¿ procmail musi poszukaæ nastêpnego dostêpnego numeru (zamiast korzystywania od razu z gotowej nazwy pliku).
Przy ogólnym niepowodzeniu, procmail zwróci EX_CANTCREAT, chyba ¿e podana zostanie opcja -t- wówczas zwróci EX_TEMPFAIL.
Procmail skleja wszystkie kontynuowane pola nag³ówkowe, ¿eby mo¿na by³o w spójniejszy sposób je `egrepowaæ'. Robi to jednak tylko wewnêtrznie - podczas dostarczania poczty, ³amania linii pojawi± siê w postaci pierwotnej.
Je¶li procmail jest wywo³ywany pod nazw± nie zaczynaj±c± siê od `procmail' (np. je¶li jest dowi±zany do innej nazwy i wywo³any pod tamt± nazw±), to w³±cza siê w jawnym trybie dostarczania i oczekuje nazw odbiorców jako argumentów wiersza poleceñ(tak, jakby by³o podane -d).
Powiadomienia comstat/biff s± dokonywane za pomoc± udp. S± one wysy³ane gdy procmail generuje wpis pliku z logiem. Komunikaty powiadamiania maj± nastêpuj±cy rozszerzony format (lub tak zbli¿ony, jaki tylko mo¿na uzyskaæ, gdy ostateczne dostarczenie nie by³o do pliku):
- $LOGNAME@offset_wiadomo¶ci_w_mailboksie :absolutna_¶cie¿ka_do_mboxa
Kiedy tylko procmail otwiera plik, do którego dostarcza, u¿ywa konsystentnie nastêpuj±cych j±drowych strategii blokowania : fcntl(2) i lockf(3).
Procmail jest odporny na NFS i czysty na ósmym bicie.
UWAGI
Wywo³ywanie procmaila z opcj± -h lub -? spowoduje wy¶wietlenie pomocy wiersza poleceñ oraz strony skróconej instrukcji flag regu³.Istnieje doskona³e FAQ dla pocz±tkuj±cych dotycz±ce filtrów pocztowych (w szczególno¶ci procmaila). Jest prowadzone przez Nancy McGough <nancym@ii.com>, a mo¿na je otrzymaæ wysy³aj±c na adres mail-server@rtfm.mit.edu list z tre¶ci±:
- send usenet/news.answers/mail/filtering-faq
Je¶li procnail nie jest zainstalowany w systemie jako domy¶lny program dostarczania poczty (zapytaj administratora), musisz siê upewniæ, ¿e jest wywo³ywany, gdy przybywa poczta. W tym wypadku twój $HOME/.forward (uwaga, musi byæ dostêpny ogó³owi do odczytu) powinien zawieraæ poni¿sz± liniê. Upewnij siê, ¿e wstawi³e¶ pojedyncze i podwójne znaki cytowania i musi to byæ absolutna ¶cie¿ka. #YOUR_USERNAME nie jest w³a¶ciwie parametrem wymaganym przez procmaila, a w rzeczywisto¶ci procmail nawet go nie ujrzy; jest to jednak niezbêdny fortel przeciw nadoptymalizuj±cym programom sendmail:
" |IFS=' '&&exec /usr/local/bin/procmail -f- | |exit 75 #YOUR_USERNAME"
Procmail mo¿e byæ te¿ wywo³ywany do przetworzenia ju¿ wype³nionej skrzynki systemowej. Mo¿e to byæ u¿yteczne je¶li nie chcesz lub nie mo¿esz u¿ywaæ pliku $HOME/.forward (wówczas mo¿na by wywo³ywaæ poni¿szy skrypt albo periodycznie z crona(1) albo ka¿dorazowo gdy zaczynasz czytaæ pocztê):
- #!/bin/sh
ORGMAIL=/var/spool/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³adowy ma³y $HOME/.procmailrc:
PATH=/bin:/usr/bin:/usr/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 przyk³ady regu³ plików rc mo¿na obejrzeæ na stronie procmailex(5).
¬RÓD£O
Program ten jest czê¶ci± pakietu procmail mail-processing-package (v3.10 1994/10/31) dostêpnego w najbli¿szym archiwum USENET comp.sources.misc lub na ftp ftp.informatik.rwth-aachen.de jako pub/packages/procmail/procmail.tar.gz.LISTA DYSKUSYJNA
Istnieje lista dyskusyjna dla pytañ zwi±zanych z programami pakietu procmail:- procmail@informatik.rwth-aachen.de
-
- do wysy³ania pytañ/odpowiedzi.
- do za¿±dania zapisania siê.
AUTOR
Stephen R. van den Berg z RWTH-Aachen, Germany- berg@pool.informatik.rwth-aachen.de
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre