- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
PROCMAIL(1) | General Commands Manual | PROCMAIL(1) |
NUME¶
procmail - procesator de corespondență electronică autonom
SINOPSIS¶
procmail [-ptoY] [-f de-la-cine]
[parametru=valoare |fișier-configurare]
...
procmail [-toY] [-f de-la-cine] [-a
argument] ... -d destinatar ...
procmail [-ptY] -m
[parametru=valoare] ...
fișier-configurare [argument] ...
procmail -v
DESCRIERE¶
Pentru un ghid rapid, consultați secțiunea NOTE de la sfârșit.
procmail ar trebui să fie invocat automat prin intermediul mecanismului de fișier .forward imediat ce sosește corespondența. Alternativ, atunci când este instalat de către un administrator de sistem, poate fi invocat imediat din interiorul agentului de poștă. Atunci când este invocat, acesta stabilește mai întâi unele variabile de mediu la valorile implicite, citește mesajul de poștă electronică de la intrarea standard până la un sfârșit de fișier (EOF), separă corpul mesajului de antet și apoi, dacă nu sunt prezente argumente în linia de comandă, începe să caute un fișier numit $HOME/.procmailrc. În conformitate cu rețetele de procesare din acest fișier, mesajul de poștă electronică care tocmai a sosit este distribuit în dosarul potrivit (și altele). Dacă nu se găsește nici un fișier-configurare sau dacă procesarea fișierului-de-configurare ajunge la final, procmail va stoca corespondența în căsuța poștală implicită a sistemului.
Dacă nu a fost specificat niciun fișier de configurare și nici opțiunea -p nu a fost specificată în linia de comandă, procmail, înainte de a citi fișierul $HOME/.procmailrc, va interpreta comenzile din fișierul /etc/procmailrc (dacă este prezent). Trebuie să se acorde atenție la crearea fișierului „/etc/procmailrc”, deoarece, dacă circumstanțele permit, acesta va fi executat cu privilegii de root (spre deosebire de fișierul „$HOME/.procmailrc”, bineînțeles).
Dacă rulează cu suid root sau cu privilegii de root, procmail va putea funcționa ca un agent de livrare a corespondenței îmbunătățit din punct de vedere funcțional și compatibil cu trecutul.
procmail poate fi, de asemenea, utilizat ca un filtru de poștă electronică de uz general, adică au fost luate măsuri pentru a permite ca procmail să fie invocat într-o regulă «sendmail» specială.
Formatul fișierului de configurare este descris în detaliu în pagina de manual procmailrc(5).
Tehnica de punctare ponderată este descrisă în detaliu în pagina de manual procmailsc(5).
Exemple de rețete pentru fișierul de configurare pot
fi consultate în pagina de manual procmailex(5).
Semnale¶
- TERMINATE
- Termină prematur și reintroduce mesajul în coada de
mesaje.
- HANGUP
- Termină prematur și returnează corespondența.
- INTERRUPT
- Termină prematur și returnează corespondența.
- QUIT
- Termină prematur și pierde în tăcere
corespondența.
- ALARM
- Forțează un temporizator (a se vedea TIMEOUT).
- USR1
- Echivalent cu VERBOSE=off.
- USR2
- Echivalent cu VERBOSE=on.
OPȚIUNI¶
- -v
- Procmail va imprima numărul versiunii sale, va afișa
configurația sa de compilare și va ieși.
- -p
- Conservă orice mediu vechi. În mod normal, procmail
șterge mediul la pornire, cu excepția valorii lui TZ. Cu
toate acestea, în orice caz: orice valoare implicită va
înlocui orice variabilă de mediu preexistentă,
adică procmail nu va acorda nici o atenție variabilelor de
mediu predefinite, ci le va suprascrie cu plăcere cu propriile
valori implicite. Pentru lista variabilelor de mediu pe care procmail le
va prestabili, consultați pagina de manual procmailrc(5).
Dacă se specifică atât opțiunea
„-p” cât și opțiunea
„-m”, lista variabilelor de mediu predefinite se reduce la
doar: LOGNAME, HOME, SHELL, ORGMAIL și MAILDIR.
- -t
- Faceți ca procmail să eșueze ușor,
adică, dacă procmail nu poate livra corespondența la
niciuna dintre destinațiile pe care le-ați dat,
corespondența nu va fi respinsă, ci se va întoarce
în coada de corespondență. O altă
încercare de livrare va fi făcută la un moment dat
în viitor.
- -f de-la-cine
- Face ca procmail să regenereze linia de început
„From” cu de la cine ca expeditor (în loc de
opțiunea „-f” se poate folosi opțiunea
alternativă și depășită
„-r”. Dacă de-la-cine constă doar
dintr- o singură „-”, atunci procmail va actualiza
doar marca temporală de pe linia „From” (dacă
este prezentă, dacă nu, va genera una nouă).
- -o
- În loc să permită oricui să genereze linii
„From”, înlocuiește pur și simplu
falsurile.
- -Y
- Presupune formatul tradițional al cutiei poștale Berkeley,
ignoră orice câmp Content-Length:.
- -a argument
- Acest lucru va stabili $1 ca fiind egal cu argument. Fiecare
-aargument succesiv va defini următoarea
variabilă numerică ($2, $3, etc.). Acesta poate fi folosit
pentru a transmite meta-informații către procmail. Acest
lucru se face în mod obișnuit prin transmiterea
informațiilor $@x din regula de „mailer”
(agent-poștal) a sendmail.
- -d destinatar ...
- Acest lucru activează modul de livrare explicit, livrarea se va
face către utilizatorul local destinatar. Desigur, acest
lucru este posibil numai dacă procmail are privilegii de root (sau
dacă procmail rulează deja cu euid și egid ale
destinatarului). Procmail va prelua identitatea (setuid) a destinatarilor
vizați și livrează corespondența ca și
cum ar fi fost invocată de către destinatar
fără argumente (adică, dacă nu se
găsește niciun fișier-configurare, livrarea se face
ca la o corespondență obișnuită).
Această opțiune este incompatibilă cu opțiunea
-p.
- -m
- Transformă procmail într-un filtru de poștă
electronică de uz general. În acest mod, trebuie specificat
un fișier-configurare în linia de comandă.
După fișierul-configurare, procmail va accepta un
număr nelimitat de argumente. Dacă
fișierul-configurare este o rută absolută care
începe cu /etc/procmailrcs/ fără
referințe înapoi (adică directorul părinte nu
poate fi menționat), procmail va prelua, numai dacă nu se
constată încălcări ale
securității, identitatea proprietarului
fișierului-configurare (sau a legăturii simbolice). Pentru o
utilizare avansată a acestei opțiuni, ar trebui să
consultați secțiunea EXEMPLE de mai jos.
ARGUMENTE¶
Toate argumentele care conțin un „=” sunt considerate a fi atribuiri de variabile de mediu, acestea vor fi evaluate după ce valorile implicite au fost atribuite și înainte de deschiderea primului fișier de configurare.
Orice alte argumente sunt presupuse a fi rute către un fișier de configurare (fie absolute, fie, dacă încep cu „./”, relative la directorul curent; orice altă rută relativă este relativă la directorul $HOME, cu excepția cazului în care a fost dată opțiunea -m, caz în care toate rutele relative sunt relative la directorul curent); procmail va începe cu prima pe care o găsește în linia de comandă. Următoarele vor fi analizate numai dacă cele precedente au o intrare de directivă HOST care nu se potrivește, sau în cazul în care nu ar trebui să existe.
Dacă nu se specifică niciun fișier de
configurare, se caută $HOME/.procmailrc. Dacă nici
măcar acesta nu poate fi găsit, procesarea va continua
în conformitate cu valorile implicite ale variabilelor de mediu
și cu cele specificate în linia de comandă.
EXEMPLE¶
Exemple de rețete pentru fișierul de configurare pot fi consultate în pagina de manual procmailex(5). Un mic eșantion de fișier de configurare poate fi găsit în secțiunea NOTE de mai jos.
Săriți peste restul acestei secțiuni EXEMPLE, cu excepția cazului în care sunteți un administrator de sistem care este vag familiarizat cu sintaxa sendmail.cf.
Opțiunea -m este utilizată de obicei atunci când procmail este apelat din cadrul unei reguli din fișierul sendmail.cf. Pentru a putea face acest lucru, este convenabil să creați un mailer suplimentar „procmail” în fișierul sendmail.cf (în plus față de mailerul „local”, probabil deja prezent, care pornește procmail). Pentru a crea un astfel de mailer „procmail” aș sugera ceva precum:
Mprocmail, P=/usr/bin/procmail, F=mSDFMhun, S=11, R=21,
A=procmail -m $h $g $u
Acest lucru vă permite să utilizați reguli cum ar fi următoarele (cel mai probabil în setul de reguli 0) pentru a filtra corespondența prin intermediul agentului poștal „mailer” procmail (vă rugăm să rețineți tabularea de început pentru a continua regula și tabularea pentru a separa comentariile):
R$*<@some.where>$*
$#procmail $@/etc/procmailrcs/some.rc $:$1@some.where.procmail$2 R$*<@$*.procmail>$*
$1<@$2>$3 Deja filtrată, înapoi la lista de corespondență
Și „/etc/procmailrcs/some.rc” ar putea fi la fel de simplu ca:
SENDER = "<$1>" # remediere pentru adresele de expeditor goale SHIFT = 1 # o elimină din $@ :0 # elimină toate mesajele nedorite * ^Subject:.*mesaje-nedorit /dev/null :0 w # transmite toate celelalte mesaje ! -oi -f "$SENDER" "$@"
Aveți grijă când trimiteți mesaje din
fișierul /etc/procmailrcs/some.rc, dacă
trimiteți mesaje la adrese care corespund din nou primei reguli,
ați putea crea o buclă de mesaje fără
sfârșit.
FIȘIERE¶
- /etc/passwd
- pentru a stabili valorile implicite ale variabilelor LOGNAME, HOME
și SHELL ale destinatarului
- /var/mail/$LOGNAME
- căsuța poștală de sistem; atât
căsuța poștală de sistem, cât și
directorul imediat în care se află aceasta vor fi create de
fiecare dată când procmail pornește și
oricare dintre ele nu este prezent
- /etc/procmailrc
- fișierul de configurare global (la nivel de sistem) inițial
- /etc/procmailrcs/
- ruta privilegiilor speciale pentru fișierele-de-configurare
- $HOME/.procmailrc
- fișierul de configurare implicit (la nivel de utilizator)
- /var/mail/$LOGNAME.lock
- fișierul de blocare pentru căsuța
poștală de sistem (nu este utilizat automat de
procmail, cu excepția cazului în care $DEFAULT este
egal cu /var/mail/$LOGNAME și procmail
livrează către $DEFAULT)
- /usr/sbin/sendmail
- programul implicit de expediere a corespondenței
- _????`hostname`
- fișiere temporare „unice” de lungime zero create de
procmail
CONSULTAȚI ȘI¶
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)
DIAGNOSTICARE¶
- Autoforwarding mailbox found (s-a găsit o căsuță poștală de redirecționare automată)
- Căsuța poștală a sistemului are bitul suid sau
sgid activat, procmail termină cu EX_NOUSER
presupunând că această căsuță
poștală nu trebuie să fie livrată.
- Bad substitution of "x" (substituire greșită a lui „x”)
- Nu este specificat un nume de variabilă de mediu valid.
- Closing brace unexpected (paranteză de închidere neașteptată)
- Nu a existat nicio paranteză de deschidere corespondentă
(„cuibărire” bloc).
- Conflicting options (opțiuni conflictuale)
- Nu toate combinațiile de opțiuni sunt valabile
- Conflicting x suppressed (x conflictual suprimat)
- Fanionul x nu este compatibil cu vreun alt fanion de pe această
rețetă.
- Couldn't create "x" (nu s-a putut crea „x”)
- Căsuța poștală de sistem lipsea și nu a
putut/nu va fi creată.
- Couldn't create maildir part "x" (nu s-a putut crea partea „x” a dosarului maildir)
- Dosarului maildir „x” îi lipsesc unul sau mai multe
subdirectoare necesare și procmail nu le-a putut crea.
- Couldn't create or rename temp file "x" (nu s-a putut crea sau redenumi fișierul temporar „x”)
- A apărut o eroare în mecanismul de livrare către
dosarul „x”.
- Couldn't determine implicit lockfile from "x" (nu s-a putut determina fișierul de blocare implicit din „x”)
- Nu au fost găsite redirecționări
„>>”, folosind doar „$LOCKEXT” ca
fișier de blocare local.
- Couldn't read "x" (nu s-a putut citi „x”)
- procmail nu a putut deschide un fișier-de-configurare sau nu
era un fișier obișnuit, sau procmail nu a putut
deschide un director MH pentru a găsi fișierul cu
numărul cel mai mare.
- Couldn't unlock "x" (nu s-a putut debloca „x”)
- Fișierul de blocare a dispărut deja, sau permisiunea de
scriere în directorul în care se află fișierul
de blocare a fost refuzată.
- Deadlock attempted on "x" (încercare de interblocare la „x”)
- Fișierul de blocare local specificat în această
rețetă este egal cu un fișier $LOCKFILE
încă activ.
- Denying special privileges for "x" (refuzarea privilegiilor speciale pentru „x”)
- procmail nu va prelua identitatea care vine cu fișierul rc
deoarece a fost găsită o încălcare a
securității (de exemplu, -p sau atribuirea de
variabile în linia de comandă) sau procmail a avut
privilegii insuficiente pentru a face acest lucru.
- Descriptor "x" was not open (descriptorul „x” nu era deschis)
- La pornirea procmail, intrarea standard (stdin), ieșirea
standard (stdout) sau ieșirea de eroare standard (stderr) nu au
fost conectate (posibil o încercare de a submina securitatea)
- Enforcing stricter permissions on "x" (punerea în aplicare a unor permisiuni mai stricte pentru „x”)
- Căsuța poștală de sistem a destinatarului s-a
dovedit a fi nesecurizată, procmail a securizat-o.
- Error while writing to "x" (eroare la scrierea în „x”)
- Subdirector inexistent, fără permisiune de scriere, conducta
a dispărut sau discul este plin.
- Exceeded LINEBUF (valoare depășită a LINEBUF)
- A fost detectată o depășire a memoriei tampon,
LINEBUF a fost prea mică, PROCMAIL_OVERFLOW a fost activată.
- MAILDIR is not an absolute path (MAILDIR nu este o rută absolută)
-
- MAILDIR path too long (rută prea lungă definită pentru MAILDIR)
-
- ORGMAIL is not an absolute path (ORGMAIL nu este o rută absolută)
-
- ORGMAIL path too long (rută prea lungă definită pentru ORGMAIL)
-
- default rcfile is not an absolute path (fișierul-de-configurare implicit nu este o rută absolută)
-
- default rcfile path too long (rută prea lungă definită pentru fișierul-de-configurare implicit)
- Ruta completă a elementului specificat, atunci când a fost
extinsă, a fost mai lungă decât LINEBUF sau nu a
început cu un separator de fișiere.
- Excessive output quenched from "x" (ieșire excesivă oprită de la „x”)
- Programul sau filtrul „x” a încercat să
producă prea multă ieșire pentru LINEBUF
curentă, restul a fost eliminat și PROCMAIL_OVERFLOW a fost
activată.
- Extraneous x ignored (extraniu x ignorat)
- Linia de acțiune sau alte fanioane din această
rețetă fac ca fanionul x să fie lipsit de sens.
- Failed forking "x" (a eșuat bifurcarea lui „x”)
- Tabelul de procese este plin (iar NORESRETRY a fost epuizat).
- „Failed to execute "x" (nu s-a reușit să se execute „x”)
- Programul nu se află în rută sau nu este executabil.
- Forced unlock denied on "x" (deblocare forțată refuzată la „x”)
- Nu există permisiune de scriere în directorul în care
se află fișierul-de-blocare „x”, sau
mai multe instanțe de procmail încearcă
să forțeze un blocaj exact în același timp.
- Forcing lock on "x" (blocare forțată pe „x”)
- Fișierul-de-blocare „x” va fi eliminat
forțat din cauza unei depășiri a timpului de
așteptare (a se vedea și: LOCKTIMEOUT).
- Incomplete recipe (rețetă incompletă)
- A fost găsit începutul unei rețete, dar s-a oprit
într-un EOF (sfârșit de fișier).
- Insufficient privileges (privilegii insuficiente)
- procmail fie are nevoie de privilegii root, fie trebuie să
aibă (e)uid și (e)gid corect pentru a rula în
modul de livrare. Mesajul va fi respins.
- Invalid regexp "x" (expresie regulată „x” nevalidă)
- Expresia regulată "x" conține erori (cel mai
probabil unele paranteze lipsă sau stranii).
- Kernel-lock failed (eroare la blocarea de către nucleu)
- În timp ce încerca să utilizeze apelurile de blocare
acceptate de kernel, unul dintre ele a eșuat (de obicei
indică o eroare a sistemului de operare), procmail
ignoră această eroare și continuă.
- Kernel-unlock failed (eroare la deblocarea de către nucleu)
- A se vedea mai sus.
- Lock failure on "x" (blocare eșuată cu „x”)
- Poate apărea numai dacă specificați niște nume
de fișiere de blocare foarte ciudate (și ilegale) sau
dacă fișierul-de-blocare nu a putut fi creat din
cauza permisiunilor insuficiente sau a subdirectoarelor inexistente.
- Lost "x" („x” pierdut)
- procmail a încercat să se cloneze, dar nu a putut
găsi din nou fișierul-de-configurare „x” (fie
a fost eliminat, fie a fost o rută relativă și
ați schimbat directorul de când procmail l-a deschis
ultima dată).
- Missing action lipsește acțiunea)
- S-a constatat că rețeta actuală este
incompletă.
- Missing closing brace (lipsește acolada de închidere)
- Un bloc „cuibărit” (între acolade) a fost
început, dar nu a fost terminat niciodată.
- Missing name (lipsește numele)
- Opțiunea „-f” necesită un argument
suplimentar.
- Missing argument (argument lipsă)
- Ați specificat opțiunea „-a”, dar ați
uitat să specificați argumentul acesteia.
- Missing rcfile (lipsește fișierul-de-configurare)
- Ați specificat opțiunea „-m”, procmail
așteaptă numele unui fișier de configurare ca
argument.
- Missing recipient (lipsește destinatarul)
- Ați specificat opțiunea „-d” sau ați
apelat procmail sub un nume diferit, acesta așteaptă
unul sau mai mulți destinatari ca argumente.
- No space left to finish writing "x" (nu a mai rămas spațiu pentru a termina de scris „x”)
- Sistemul de fișiere care conține „x” nu are
suficient spațiu liber pentru a permite transmiterea mesajului
către fișier.
- Out of memory (memorie insuficientă)
- Sistemul nu mai are spațiu de interschimb „swap” (iar
NORESRETRY a fost epuizat).
- Processing continued (procesarea continuă)
- Opțiunile nerecunoscute din linia de comandă sunt ignorate,
procedându-se ca de obicei.
- Program failure (nnn) of "x" (eșecul programului (nnn) al „x”)
- Programul care a fost inițiat de procmail a returnat nnn
în loc de EXIT_SUCCESS (=0); dacă nnn este negativ, atunci
acesta este semnalul la care programul a murit.
- Quota exceeded while writing "x" (cota a fost depășită în timp ce se scria „x”)
- Cota de dimensiune a fișierelor pentru destinatar pe sistemul de
fișiere care conține "x" nu permite transmiterea
mesajului către fișier.
- Renaming bogus "x" into "x" (redenumirea falsului „x” în „x”)
- Căsuța poștală de sistem a destinatarului a
fost găsită a fi falsă, procmail a efectuat
acțiuni evazive.
- Rescue of unfiltered data succeeded/failed (salvarea datelor nefiltrate a reușit/a eșuat)
- Un filtru a returnat un eșec, procmail
încearcă să obțină înapoi textul
original.
- Skipped: "x" (omis: „x”)
- Nu s-a putut face nimic cu „x” din
fișierul-de-configurare (eroare de sintaxă), se
ignoră.
- Suspicious rcfile "x" (fișier-de-configurare „x” suspect)
- Proprietarul fișierului-de-configurare nu era destinatarul sau
utilizatorul root, fișierul putea fi accesat de toată lumea
sau directorul care îl conținea putea fi accesat de
toată lumea, sau acesta era fișierul-de-configurare implicit
($HOME/.procmailrc) și putea fi accesat de grup sau directorul care
îl conținea putea fi accesat de grup
(fișierul-de-configurare nu a fost utilizat).
- Terminating prematurely whilst waiting for ... (încheiere prematură în așteptarea ...)
- procmail a primit un semnal în timp ce aștepta pentru
...
- Timeout, terminating "x" (timp de așteptare depășit, terminând „x”)
- A apărut o depășire a timpului de așteptare
pentru programul sau filtrul „x”.
- Timeout, was waiting for "x" (timp de așteptare depășit, a fost în așteptare pentru „x”)
- A apărut o depășire a timpului de așteptare
pentru programul, filtrul sau fișierul „x”.
Dacă a fost un program sau un filtru, atunci se pare că
acesta nu mai rulează.
- Truncated file to former size (fișier trunchiat la dimensiunea anterioară)
- Fișierul nu a putut fi livrat cu succes, astfel încât
fișierul a fost trunchiat la dimensiunea sa anterioară.
- Truncating "x" and retrying lock (trunchierea lui „x” și reîncercarea blocării)
- „x” nu pare a fi un nume de fișier valid sau
fișierul nu este gol.
- Unable to treat as directory "x" (imposibil de tratat ca director „x”)
- Fie sufixul lui „x” ar indica faptul că ar trebui
să fie un dosar MH sau un dosar maildir, fie a fost listat ca un al
doilea dosar în care să se facă legătura, dar
acesta există deja și nu este un director.
- Unexpected EOL (EOL neașteptat)
- Lipsește ghilimeaua de închidere sau se
încearcă să se eludeze EOF.
- Unknown user "x" (utilizator „x” necunoscut)
- Destinatarul specificat nu are un uid corespunzător.
DIAGNOSTICARE EXTINSö
Diagnosticarea extinsă poate fi activată și
dezactivată prin definirea variabilei VERBOSE.
- [pid] time & date ([pid] ora și data)
- PID-ul procmail și un marcaj de timp. Generat ori de
câte ori procmail înregistrează un diagnostic
și a trecut cel puțin o secundă de la ultimul marcaj
temporal.
- Acquiring kernel-lock (dobândirea blocării nucleului)
- procmail încearcă acum să blocheze în
nucleu cel mai recent fișier deschis (descriptor).
- Assigning "x" (se atribuie „x”)
- Atribuirea variabilei de mediu.
- Assuming identity of the recipient, VERBOSE=off (presupunând identitatea destinatarului, VERBOSE=off)
- Se elimină toate privilegiile (dacă există), se
dezactivează implicit diagnosticarea extinsă.
- Bypassed locking "x" (blocare evitată „x”)
- Directorul de derulare al corespondenței (spool) nu era accesibil
pentru procmail, se baza doar pe blocajele nucleului.
- Executing "x" (se execută „x”)
- Pornirea programului "x". Dacă este pornit direct de
procmail (fără un shell intermediar), procmail
va arăta unde a separat argumentele prin inserarea de virgule.
- HOST mismatched "x" (HOST nu se potrivește cu „x”)
- Această gazdă a fost numită „x”, HOST
conținea altceva.
- Locking "x" (blocând „x”)
- Se creează fișierul de blocare „x”.
- Linking to "x" (legând cu „x”)
- Se creează o legătură dură între
dosarele de directoare.
- Match on "x" (potrivire la „x”)
- Concordanță cu condiția.
- Matched "x" („x” potrivit)
- Asignat „x” la MATCH.
- No match on "x" (nepotrivire la „x”)
- Condiția nu s-a potrivit, rețeta a fost ignorată.
- Non-zero exitcode (nnn) by "x" (cod de ieșire diferit de zero (nnn) prin „x”)
- Programul care a fost pornit de procmail ca o condiție sau
ca acțiune a unei rețete cu fanionul „W” a
returnat nnn în loc de EXIT_SUCCESS (=0); utilizarea indică
faptul că aceasta nu este o condiție complet
neașteptată.
- Notified comsat: "$LOGNAME@offset:file" (notificare comsat: "$LOGNAME@poziție:fișier")
- S-a trimis către comsat/biff o notificare că a sosit
poșta pentru utilizatorul $LOGNAME la „pozitia” din
„fișier”.
- Opening "x" (se deschide „x”)
- Se deschide fișierul „x” pentru adăugare.
- Rcfile: "x" (fișier-configurare: „x”)
- Fișierul-de-configurare schimbat cu „x”.
- Reiterating kernel-lock (reiterarea blocării nucleului)
- În timp ce se încercau mai multe metode de blocare, una
dintre acestea a eșuat. procmail va repeta
până când toate vor reuși în succesiune
rapidă.
- Score: added newtotal "x" (punctaj: adăugat total-nou „x”)
- Această condiție a obținut puncte
"adăugate”, ceea ce a dus la un scor
„total-nou”.
- Unlocking "x" (se deblochează „x”)
- Eliminarea din nou a fișierului de blocare „x”.
AVERTISMENTE¶
Ar trebui să creați un script shell care utilizează lockfile(1) înainte de a invoca shell-ul dvs. de poștă electronică pe orice fișier de căsuță poștală, altul decât căsuța poștală de sistem (cu excepția cazului în care, desigur, shell-ul dvs. de poștă electronică utilizează aceleași fișiere de blocare (locale sau globale) specificate în fișierul-de-configurare).
În cazul puțin probabil în care trebuie neapărat să opriți procmail înainte ca acesta să se termine, încercați mai întâi să folosiți comanda obișnuită kill (adică nu «kill -9», consultați subsecțiunea Semnale pentru sugestii), altfel unele fișiere-de-blocare ar putea să nu fie eliminate.
Atenție la utilizarea opțiunii -t, dacă procmail nu poate livra în mod repetat corespondența (de exemplu, din cauza unui fișier-de-configurare incorect), coada de corespondență a sistemului s-ar putea umple. Acest lucru ar putea deranja atât agentul-de poștă-local, cât și alți utilizatori.
Fișierul /etc/procmailrc ar putea fi executat cu privilegii de root, deci fiți foarte atenți la ce puneți în el. SHELL va fi egal cu cel al destinatarului curent, deci dacă procmail trebuie să invoce shell-ul, ar fi bine să îl configurați mai întâi la o valoare sigură. A se vedea de asemenea : DROPPRIVS.
Rețineți că, dacă chown(1) este permis pentru fișierele din /etc/procmailrcs/, acestea pot fi schimbate de proprietar, către root (sau oricine altcineva) de către proprietarii lor actuali. Pentru securitate maximă, asigurați-vă că acest director este executabil numai pentru root.
procmail nu este instrumentul potrivit pentru partajarea
unei căsuțe poștale între mai mulți
utilizatori, cum ar fi atunci când aveți un cont POP pentru
toate mesajele către domeniul dvs. Acest lucru se poate face
dacă reușiți să vă configurați
MTA-ul pentru a adăuga niște antete cu datele destinatarului
plicului, pentru a-i indica lui procmail cui îi este destinat
un mesaj, dar, de obicei, acest lucru nu este cel mai potrivit. Poate
doriți să verificați dacă MTA-ul dvs.
oferă „tabele virtuale de utilizatori” sau să
verificați facilitatea „multitidrop” a
fetchmail.
ERORI¶
După eliminarea forțată a unui fișier de blocare, procmail așteaptă $SUSPEND secunde înainte de a crea un nou fișier de blocare, astfel încât un alt proces care decide să elimine fișierul de blocare vechi să nu elimine din greșeală fișierul de blocare nou creat.
procmail utilizează semnalul obișnuit TERMINATE pentru a termina orice filtru scăpat de sub control, dar nu verifică dacă filtrul răspunde la acest semnal și îl trimite doar filtrului în sine, nu și copiilor-filtrului.
Un câmp Content-Length: continuat nu este gestionat corect.
Noile linii încorporate într-un antet continuat ar
trebui să fie ignorate la potrivire, în loc să fie
tratate ca un singur spațiu, așa cum se
întâmplă acum.
DIVERSE¶
Dacă există un câmp Content-Length: în antetul mesajului și opțiunea -Y nu este specificată, procmail va ajusta câmpul pentru a raporta dimensiunea corectă. procmail nu modifică lățimea câmpului.
Dacă nu există câmpul Content-Length: sau dacă a fost specificată opțiunea -Y și procmail se atașează la dosarele de corespondență obișnuite, orice linii din corpul mesajului care par a fi mărci poștale sunt precedate de `>' (dezarmează anteturile de corespondență false). Expresia regulată care este utilizată pentru căutarea acestor mărci poștale este:
`\nFrom '
Dacă numele destinatarului utilizat în modul explicit de livrare nu se află în „/etc/passwd”, procmail va proceda ca și cum modul explicit de livrare nu ar fi în vigoare. În cazul în care nu se utilizează modul de livrare explicit și uid-ul sub care rulează procmail nu are o intrare corespunzătoare în „/etc/passwd”, atunci HOME va fi implicit /, LOGNAME va fi implicit #uid, SHELL va fi implicit „/bin/sh,” iar ORGMAIL va fi implicit „/tmp/dead.letter”.
Atunci când este în modul de livrare explicită, procmail va genera o linie `From ' dacă nu este prezentă. Dacă există deja una, procmail o lasă intactă. În cazul în care procmail nu este invocat cu unul dintre următoarele id-uri de utilizator sau de grup: root, daemon, uucp, mail, x400, network, list, slist, lists sau news, dar trebuie totuși să genereze sau să accepte o nouă linie `From ', acesta va genera o linie suplimentară `>From ' pentru a ajuta la distingerea mesajelor false.
Din motive de securitate, procmail va utiliza un fișier-de-configurare absolut sau $HOME-relativ numai dacă acesta este deținut de destinatar sau de root, nu poate fi scris de toată lumea, iar directorul în care este conținut nu poate fi scris de toată lumea. Fișierul $HOME/.procmailrc are constrângerea suplimentară de a nu fi inscriptibil de grup sau într-un director inscriptibil de grup.
Dacă „/var/mail/$LOGNAME” este o căsuță poștală falsă (de exemplu, nu aparține destinatarului, nu poate fi scrisă, este o legătură simbolică sau este o legătură dură), procmail va încerca la pornire să o redenumească într-un fișier care începe cu „BOGUS.$LOGNAME.” și se termină cu un cod de secvență de nod-i. Dacă acest lucru se dovedește a fi imposibil, ORGMAIL va avea valoarea inițială no și, prin urmare, va inhiba livrarea fără un fișier-de-configurare corespunzător.
Dacă „/var/mail/$LOGNAME” este deja o căsuță poștală validă, dar are permisiuni prea puține pe ea, procmail va corecta acest lucru. Pentru a împiedica procmail să facă acest lucru, asigurați-vă că bitul u+x este activat.
Atunci când livrați în directoare, dosare MH sau dosare maildir, nu trebuie să utilizați fișiere de blocare pentru a preveni interferențele dintre mai multe programe procmail care rulează simultan.
Livrarea către dosarele MH consumă puțin mai mult timp decât livrarea către directoare sau căsuțe poștale normale, deoarece procmail trebuie să caute următorul număr disponibil (în loc să aibă numele fișierului imediat disponibil).
În caz de eșec general, procmail va returna EX_CANTCREAT, cu excepția cazului în care este specificată opțiunea -t, caz în care va returna EX_TEMPFAIL.
Pentru a face „separarea” antetelor mai consecventă, procmail concatenează toate câmpurile continue ale antetului; dar numai intern. La livrarea mesajului, întreruperile de linie vor apărea ca înainte.
Dacă procmail este apelat sub un nume care nu începe cu „procmail” (de exemplu, dacă este legat de un alt nume și apelat ca atare), acesta apare în modul de livrare explicit și așteaptă numele destinatarilor ca argumente ale liniei de comandă (ca și cum ar fi fost specificată opțiunea „-d”).
Notificările Comsat/biff sunt efectuate utilizând udp. Acestea sunt trimise o dată când procmail generează intrarea obișnuită în fișierul jurnal. Mesajele de notificare au următorul format extins (sau cât de aproape se poate obține atunci când livrarea finală nu a fost într-un fișier):
$LOGNAME@poziția_mesajului_în_căsuța-poștală :ruta_absolută_către_căsuța-poștală
Ori de câte ori procmail deschide el însuși un fișier pe care să îl livreze, utilizează în mod consecvent următoarele strategii de blocare a nucleului : fcntl(2).
procmail este rezistent la NFS și optimizat pe opt
biți.
NOTE¶
Apelul la procmail cu opțiunile -h sau -? va face ca acesta să afișeze o pagină de ajutor în linie de comandă și o pagină de referință rapidă pentru fanionul de rețetă.
Există o excelentă pagină de întrebări și răspunsuri frecvente (FAQ) pentru începători despre filtrele de mail (și procmail în special); este întreținută de Nancy McGough <nancym@ii.com> și poate fi obținută trimițând un mesaj la mail-server@rtfm.mit.edu cu următoarele în corp:
send usenet/news.answers/mail/filtering-faq
Dacă procmail nu este instalat la nivel global ca agent implicit de livrare a corespondenței (întrebați administratorul de sistem), trebuie să vă asigurați că este invocat atunci când ajunge corespondența. În acest caz, fișierul dvs. $HOME/.forward (atenție, acesta trebuie să aibă permisiunea de citire pentru toată lumea) trebuie să conțină linia de mai jos. Asigurați-vă că includeți ghilimelele simple și duble și, cu excepția cazului că situl dvs. rulează smrsh (SendMail Restricted SHell), aceasta trebuie să fie o rută absolută.
" |exec /usr/bin/procmail"
Unele programe de poștă electronică (în special exim) nu acceptă în prezent sintaxa de mai sus. În acest caz, folosiți în schimb următoarea linie:
|/usr/bin/procmail
procmail poate fi, de asemenea, invocat pentru a postprocesa o căsuță poștală de sistem deja plină. Acest lucru poate fi util dacă nu doriți sau nu puteți utiliza un fișier „$HOME/.forward” (caz în care următorul script ar putea fi apelat periodic din cadrul cron(1), sau ori de câte ori începeți să citiți corespondența):
#!/bin/sh ORGMAIL=/var/mail/$LOGNAME if cd $HOME &&
test -s $ORGMAIL &&
lockfile -r0 -l1024 .newmail.lock 2>/dev/null then
trap "rm -f .newmail.lock" 1 2 3 13 15
umask 077
lockfile -l1024 -ml
cat $ORGMAIL >>.newmail &&
cat /dev/null >$ORGMAIL
lockfile -mu
formail -s procmail <.newmail &&
rm -f .newmail
rm -f .newmail.lock fi exit 0
Un mic eșantion de fișier „$HOME/.procmailrc”:¶
PATH=/usr/local/bin:/usr/bin:/bin MAILDIR=$HOME/Mail #ar fi bine să vă asigurați că există DEFAULT=$MAILDIR/mbox #complet opțional LOGFILE=$MAILDIR/from #recomandat :0: * ^From.*berg from_me :0 * ^Subject:.*Flame /dev/null
Alte exemple de rețete pentru fișierul de configurare pot fi consultate în pagina de manual procmailex(5).
SOURCE¶
Acest program face parte din pachetul procmail mail-processing-package (v3.23pre) disponibil la http://www.procmail.org/ sau ftp.procmail.org în pub/procmail/.
MAILINGLIST¶
Există o listă de corespondență pentru întrebări legate de orice program din pachetul procmail:
<procmail-users@procmail.org>
pentru a trimite întrebări/răspunsuri.
pentru cererile de abonare.
Dacă doriți să fiți informat cu privire la noile
versiuni și corecțiile oficiale, trimiteți o cerere de
abonament la adresa
procmail-announce-request@procmail.org
AUTORI¶
Stephen R. van den Berg
<srb@cuci.nl>
Philip A. Guenther
<guenther@sendmail.com>
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
2001/08/27 | BuGless |