table of contents
FORMAIL(1) | General Commands Manual | 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, «formail» 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.24) 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>
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.
BuGless |