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 'u' : 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ă 'u' :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 'u' : 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ă.

" 'u' |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.
    <procmail-users-request@procmail.org>
        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
(aceasta este o listă numai-pentru-citire).

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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.