FORMAIL(1)

NUME
formail - (re)formator de e-mail

SINOPSIS
formail [+omite] [-total] [-bczfrktedqBY] [-p prefix]
[-D lung-maximă cache-id]
[-l dosar]
[-x câmp-antet] [-X câmp-antet]
[-a câmp-antet] [-A câmp-antet]
[-i câmp-antet] [-I câmp-antet]
[-u câmp-antet] [-U câmp-antet]
[-R câmp-vechi câmp-nou]
[-n [num-max-procese ]] [-m num-min-câmpuri] [-s [comanda [argument ...]]]
formail -v

DESCRIERE
formail este un filtru care poate fi utilizat pentru a forța corespondența în format de căsuță poștală, pentru a efectua eludări `From ', pentru a genera anteturi de răspuns automat, pentru a face o simplă transformare/extragere a antetului sau pentru a diviza un fișier de căsuță poștală/rezumat/articol. Conținutul corespondenței/căsuței poștale/articolului va fi așteptat la intrarea standard.

În cazul în care formail trebuie să determine expeditorul mesajului, dar nu găsește niciunul, va înlocui „foo@bar”.

Dacă formail este pornit fără nici o opțiune de linie de comandă, va forța orice mesaj care vine de la intrarea standard în formatul de căsuță poștală și va eluda toate liniile false „From ” cu un „>”.

OPȚIUNI

-v  formail va imprima numărul versiunii sale și va ieși.

-b  Nu eludează niciun antet fals de căsuță poștală (de exemplu, liniile care încep cu „From”).

-p prefix
    Definește un alt prefix de citare. Dacă nu este specificat, acesta este implicit „>”.

-Y  Se presupune formatul tradițional al căsuței poștale Berkeley, ignorând orice câmp Content-Length:.

-c  Concatenează câmpurile continue din antet. Ar putea fi util la postprocesarea corespondenței cu utilități de text standard (orientate pe linii).

-z  Se asigură că există un spațiu între numele câmpului și conținut. Anulează câmpurile care conțin doar un singur caracter de spațiere. Elimină spațiile albe de început și de sfârșit în câmpurile extrase cu -x.

-f  Forțează formail să paseze pur și simplu orice format care nu este o căsuță poștală poștală (de exemplu, nu generează o linie `From ' ca primă linie).

-r  Generează un antet de răspuns automat. În mod normal, acest lucru va înlătura toate câmpurile existente (cu excepția X-Loop:) din mesajul original; câmpurile pe care doriți să le păstrați trebuie să fie denumite cu ajutorul opțiunii -i. Dacă folosiți această opțiune împreună cu -k, puteți preveni ca corpul mesajului să fie „eludat” specificând și -b.

-k  La generarea antetului de răspuns automat sau la extragerea câmpurilor, păstrează și corpul.

-t  Are încredere că expeditorul a folosit o adresă de retur validă în antetul său. Acest lucru face ca formail să selecteze expeditor antet în loc de expeditor plic pentru răspuns. Această opțiune ar trebui utilizată la generarea antetelor de răspuns automat din articolele de știri sau atunci când expeditorul mesajului așteaptă un răspuns.

-s  Datele de intrare vor fi împărțite în mesaje de poștă electronică separate și vor fi introduse într-un program, unul câte unul (pentru fiecare parte se pornește un nou program). -s trebuie să fie ultima opțiune specificată, iar primul argument care urmează trebuie să fie numele unui program, orice alt argument va fi transmis către acesta. Dacă omiteți programul, formail va concatena pur și simplu mailurile divizate din nou la ieșirea standard. A se vedea FILENO.

-n [num-max-procese]
    Îi indică lui formail să nu aștepte ca fiecare program să se termine înainte de a-l începe pe următorul (face ca diviziunile să fie procesate în paralel).

-e  Nu este necesar ca liniile goale să fie precedate de antetul unui nou mesaj (de exemplu, mesajele pot începe pe fiecare linie).

-d  Îi indică lui formail că mesajele pe care trebuie să le împartă nu trebuie să fie în format strict de căsuță poștală (de exemplu, vă permite să împărțiți rezumate/articole sau formate de căsuță poștală non-standard). Aceasta dezactivează recunoașterea câmpului Content-Length:.

-l dosar
    Generează un rezumat al jurnalului în același stil ca și procmail. Acesta include întreaga linie „From ”, câmpul de antet Subject:, dosarul și dimensiunea mesajului în octeți. Comanda «mailstat» poate fi utilizată pentru a rezuma jurnalele în acest format.

-B  Face ca formail să presupună că împarte un fișier rmail BABYL.

-m num-min-câmpuri
    Vă permite să specificați numărul de câmpuri de antet consecutive pe care formail trebuie să le găsească înainte de a decide că a găsit începutul unui mesaj nou; valoarea implicită este 2.

-q  Îi indică lui formail să (detecteze în continuare, dar) să fie discret cu privire la erorile de scriere, mesajele duplicate și câmpurile Content-Length: nepotrivite. Această opțiune este activată în mod implicit; pentru a face să afișeze mesajele, utilizați -q-.

-D lung-maximă cache-id
    formail va detecta dacă Message-ID al mesajului curent a fost deja văzut folosind un fișier idcache de aproximativ lung-max dimensiune. În cazul în care nu divizează, va returna succes dacă a fost găsit un duplicat. În cazul în care divizează, nu va emite mesaje duplicate. Dacă este utilizată împreună cu -r, «formail» va căuta adresa de poștă electronică a expeditorului plicului în loc să caute Message-ID.

-x câmp-antet
    Extrage conținutul acestui câmp-antet din antet. Continuările de linie vor fi lăsate intacte; dacă doriți valoarea pe o singură linie, atunci veți avea nevoie și de opțiunea -c.

-X câmp-antet
    La fel ca -x, dar păstrează/include și numele câmpului.

-a câmp-antet
    Adaugă un câmp câmp-antet personalizat în antet; dar numai dacă nu există încă un câmp similar. Dacă specificați unul dintre numele câmpurilor Message-ID: sau Resent-Message-ID: fără conținutul câmpului, formail va genera un ID unic al mesajului pentru dumneavoastră.

-A câmp-antet
    Adaugă un câmp-antet personalizat la antet în orice caz.

-i câmp-antet
    La fel ca -A, cu excepția faptului că toate câmpurile similare existente sunt redenumite prin adăugarea unui prefix „Old-”. În cazul în care câmp-antet constă doar dintr-un nume de câmp, acesta nu va fi adăugat.

-I câmp-antet
    La fel ca -i, cu excepția faptului că toate câmpurile similare existente sunt pur și simplu eliminate. În cazul în care câmp-antet constă doar dintr-un nume de câmp, se șterge efectiv câmpul.

-u câmp-antet
    Face ca prima apariție a acestui câmp să fie unică și, prin urmare, șterge toate aparițiile ulterioare ale acestuia.

-U câmp-antet
    Face ca ultima apariție a acestui câmp să fie unică și, prin urmare, șterge toate aparițiile anterioare ale acestuia.

-R câmp-vechi câmp-nou
    Redenumește toate aparițiile numelui de câmp câmp-vechi în câmp-nou.

+omite
    Omite primele mesaje omite în timpul divizării.

-total
    Emite cel mult total mesaje în timpul divizării.

NOTE
La redenumirea, eliminarea sau extragerea câmpurilor, se pot utiliza nume de câmp parțiale pentru a specifica toate câmpurile care încep cu valoarea specificată.

În mod implicit, atunci când generează un antet de răspuns automat, «procmail» selectează expeditorul plicului din mesajul de intrare. Acest lucru este corect pentru mesajele de concediu și alte răspunsuri automate referitoare la direcționarea sau livrarea mesajului original. În cazul în care expeditorul așteaptă un răspuns sau răspunsul este generat ca răspuns la conținutul mesajului original, atunci trebuie utilizată opțiunea „-t”.

RFC822, standardul original care reglementează formatul mesajelor de poștă electronică în Internet, nu a specificat dacă câmpurile de antet Resent (cele care încep cu „Resent-”, cum ar fi „Resent-From:”) trebuie luate în considerare la generarea unui răspuns. De atunci, utilizarea recomandată a antetelor „Resent” (retrimitere) a evoluat în sensul că acestea sunt considerate ca fiind pur informative și nu trebuie utilizate la generarea unui răspuns. Acest lucru a fost codificat în RFC2822, noul standard „Internet Message Format”, care prevede în parte:

    Câmpurile „Resent” (retrimitere) sunt utilizate pentru a identifica un mesaj ca fiind reintrodus în sistemul de transport de către un utilizator. Scopul utilizării câmpurilor de retrimitere este ca mesajul să apară destinatarului final ca și cum ar fi fost trimis direct de expeditorul original, toate câmpurile originale rămânând neschimbate....Acestea NU TREBUIE să fie utilizate în procesarea normală a răspunsurilor sau a altor acțiuni automate de acest tip asupra mesajelor.

În timp ce formail ignoră acum antetele „Resent” atunci când generează răspunsuri cu antet, versiunile de formail anterioare versiunii 3.14 acordau acestor antete o prioritate ridicată. În cazul în care vechiul comportament este necesar pentru aplicații consacrate, acesta poate fi specificat prin apelarea «formail» cu opțiunea „-a Resent-” în plus față de opțiunile „-r” și „-t”. Această utilizare este depreciată și nu ar trebui să fie folosită în aplicații noi.

MEDIU

FILENO
    În timpul împărțirii, formail atribuie acestei variabile numărul mesajului care este în curs de ieșire. Prin predefinirea FILENO, puteți modifica numărul inițial al mesajului utilizat și lățimea ieșirii cu umplutură de zero-uri. Dacă FILENO nu este definită, aceasta va avea valoarea implicită 000. Dacă valoarea variabilei FILENO nu este goală și nu conține un număr, generarea FILENO este dezactivată.

EXEMPLE
Pentru a diviza un rezumat se folosește de obicei:
    formail +1 -ds >>căsuța_poștală_aleasă_de_dvs.
sau
    formail +1 -ds procmail

Pentru a elimina toate câmpurile Received: din antet:
    formail -I Received:

Pentru a elimina toate câmpurile din antet, cu excepția From: și Subject::
    formail -k -X From: -X Subject:

Pentru a înlocui câmpul Reply-To: dintr-un antet, puteți folosi:
    formail -i "Reply-To: foo@bar"

Pentru a converti un fișier de căsuță poștală non-standard într-un fișier de căsuță poștală standard, puteți utiliza:
    formail -ds <căsuța_poștală-veche >>căsuța_poștală-nouă

Sau, dacă aveți un agent de poștă electronică foarte tolerant:
    formail -a Date: -ds <căsuța_poștală-veche >>căsuța_poștală-nouă

Pentru a extrage antetul unui mesaj:
    formail -X ""
sau
    sed -e '/^$/ q'

Pentru a extrage corpul unui mesaj:
    formail -I ""
sau
    sed -e '1,/^$/ d'

CONSULTAȚI ȘI
mail(1), sendmail(8), procmail(1), sed(1), sh(1), RFC822, RFC2822, RFC1123

DIAGNOSTICARE

„Can't fork” -- Nu se poate bifurca
    Prea multe procese pe această mașină.

„Content-Length: field exceeds actual length by nnn bytes” -- Content-Length: câmpul depășește lungimea reală cu nnn octeți
    Câmpul „Content-Length:” din antet a specificat o lungime mai mare decât corpul real. Acest lucru face ca acest mesaj să absoarbă un număr de mesaje ulterioare din aceeași căsuță poștală.

„Couldn't write to stdout” -- Nu s-a putut scrie la ieșirea standard (stdout)
    Programul la care formail a încercat să se conecteze (folosind o conductă) nu a acceptat toate datele pe care formail i le-a trimis; acest diagnostic poate fi suprimat prin opțiunea -q.

„Duplicate key found: x” -- Cheie duplicată găsită: x
    Message-ID sau expeditorul x din acest mesaj a fost găsit în idcache; acest diagnostic poate fi suprimat cu ajutorul opțiunii -q.

„Failed to execute "x" (nu s-a reușit să se execute „x”)
    Programul nu se află în rută sau nu este executabil.

„File table full” -- Tabelul de fișiere este plin
    Prea multe fișiere deschise pe această mașină.

„Invalid field-name: "x"” -- Nume de câmp nevalid: „x”
    Numele de câmp specificat „x” conține caractere de control sau nu poate fi un nume de câmp parțial pentru această opțiune.

AVERTISMENTE
Vă puteți scuti pe dumneavoastră și pe alții de o mulțime de necazuri dacă încercați să evitați utilizarea acestei funcții de răspuns automat la mesajele care vin prin listele de distribuție. În funcție de formatul mesajului primit (care, la rândul său, depinde atât de agentul de poștă al expeditorului original, cât și de configurația listei de corespondență), formail ar putea decide să genereze un antet de răspuns automat care să răspundă la listă.

Urmând tradiția instrumentelor UN*X, formail va face exact ceea ce îi cereți, chiar dacă rezultă un mesaj care nu este conform cu RFC822. În special, formail vă va permite să generați câmpuri de antet al căror nume se termină cu un spațiu în loc de două puncte. Deși acest lucru este corect pentru linia de început „From ”, această linie nu este un câmp de antet, ci mai degrabă separatorul de mesaje pentru formatul de căsuță poștală mbox. Aparițiile multiple ale unei astfel de linii sau ale oricărui alt câmp de antet fără două puncte vor fi considerate de multe programe de poștă electronică, inclusiv de formail însuși, ca fiind începutul unui nou mesaj. Altele vor considera mesajul ca fiind corupt. Din această cauză, nu trebuie să utilizați opțiunea -i cu linia „From ”, deoarece linia redenumită rezultată, „Old-From ”, probabil că nu va face ceea ce doriți. Dacă doriți să salvați linia „From ” originală, redenumiți-o cu opțiunea -R într-un câmp de antet legal, cum ar fi „X-From_:”.

ERORI
Atunci când formail trebuie să genereze o linie de început „From ”, aceasta va conține în mod normal data curentă. Dacă formail primește opțiunea „-a Date:”, va folosi data din câmpul „Date:” din antet (dacă este prezent). Cu toate acestea, deoarece formail îl copiază textual, formatul va fi diferit de cel așteptat de majoritatea cititoarelor de e-mail.

Dacă formail este instruit să șteargă sau să redenumească linia principală „From ”, nu o va regenera automat ca de obicei. Pentru a forța formail să o regenereze în acest caz, includeți -a 'From '.

În cazul în care formail nu este apelat ca primul program dintr-o conductă și i se solicită să împartă datele de intrare în mai multe mesaje, formail nu se va încheia până când programul de la care primește datele de intrare nu își închide ieșirea sau nu se termină singur.

În cazul în care formail este instruit să genereze un mesaj de răspuns automat, nu va pune niciodată mai mult de o adresă în câmpul „To:”.

DIVERSE
formail este curat pe opt biți.

Atunci când formail trebuie să determine adresa expeditorului, este permisă orice adresă de corespondență conformă cu RFC822. formail va reduce întotdeauna adresa la forma sa minimă (eliminând comentariile și spațiile albe excesive).

Expresia regulată utilizată pentru a găsi ștampilele poștale „reale” este:
    "\n\nFrom [\t ]*[^\t\n ]+[\t ]+[^\n\t ]"

Dacă se găsește un câmp Content-Length: într-un antet, formail va copia textual numărul de octeți specificat în corpul mesajului înainte de a relua scanarea obișnuită a limitelor mesajului (cu excepția cazului în care se presupune divizarea rezumatelor sau a formatului Berkeley mailbox).

Orice linie de antet care urmează imediat după linia principală „From ” și care începe cu „>From ” este considerată ca fiind o continuare a liniei „From ”. Dacă i se cere să redenumească linia „From ”, formail va schimba fiecare „>” de început în spațiu, transformând astfel aceste linii în continuări normale RFC822.

NOTE
Apelarea formail cu opțiunile „-h” sau „-?” va face ca formail să afișeze o pagină de ajutor în linia de comandă.

  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.