mbox(5)

NUME
mbox - format pentru stocarea mesajelor de poștă electronică

DESCRIERE
Acest document descrie formatul utilizat în mod tradițional de gazdele Unix pentru a stoca local mesajele de poștă electronică. Fișierele mbox se află de obicei în directorul de triere a poștei electronice (spool) a sistemului, sub diferite nume în directoarele „Mail” ale utilizatorilor și sub numele mbox în directoarele personale ale utilizatorilor.

Un mbox este un fișier text care conține un număr arbitrar de mesaje de e-mail. Fiecare mesaj constă dintr-un ștampilă poștală, urmată de un mesaj de poștă electronică formatat în conformitate cu RFC822, RFC2822. Formatul fișierului este orientat pe linii. Liniile sunt separate prin caractere de avansare de linie (ASCII 10).

O linie de ștampilă poștală este formată din cele patru caractere „From” (De la), urmate de un spațiu, apoi de adresa expeditorului plicului mesajului, urmată de un spațiu și de un marcaj de timp. Această linie se numește adesea linia From_.

Se așteaptă ca adresa expeditorului să fie addr-spec așa cum este definită în RFC2822 3.4.1. Data trebuie să fie date-time, așa cum este emisă de asctime(3). Din motive de compatibilitate cu software-ul existent, anii cu două cifre mai mari sau egale cu 70 trebuie interpretați ca fiind anii 1970+, în timp ce anii cu două cifre mai mici de 70 trebuie interpretați ca fiind anii 2000-2069. Programele care citesc fișiere în acest format trebuie, de asemenea, să fie pregătite să accepte informații non-numerice privind fusul orar, cum ar fi „CET DST” pentru ora Europei Centrale, ora de vară.

Exemplu:

    >From example@example.com Fri Jun 23 02:56:55 2000 (în engleză) >De la example@example.com Vin Iun 23 02:56:55 2000 (în română)

Pentru a evita interpretarea eronată a liniilor din corpul mesajelor care încep cu cele patru caractere „From”, urmate de un spațiu, agentul de distribuire a corespondenței trebuie să pună între ghilimele duble orice apariție a "From " la începutul unei linii din corpul mesajului.

Există două scheme de punere între ghilimele diferite, prima (MBOXO) pune între ghilimele doar liniile simple "From " din corp prin adăugarea unui ">" la linie; a doua (MBOXRD) pune între ghilimele și liniile "From " deja puse între ghilimele prin adăugarea unui ">" (de exemplu, ">From ", ">>From ", ...). Această ultimă variantă are avantajul că linii precum

    >Din linia de comandă puteți folosi opțiunea „-p”.

punerea între ghilimele nu este înțeleasă greșit, deoarece un MBOXRD-MDA ar transforma linia în

    >>Din linia de comandă puteți folosi opțiunea „-p”.

înainte de a-l stoca. În afară de MBOXO și MBOXRD există și MBOXCL care este MBOXO cu un câmp "Content-Length:" cu numărul de octeți din corpul mesajului; unele MUA (cum ar fi mutt(1)) transformă automat căsuțele poștale MBOXO în căsuțe poștale MBOXCL atunci când le scriu înapoi, deoarece MBOXCL pot fi citite fără probleme de orice MBOXO-MUA.

În cazul în care timpul de modificare (determinat de obicei prin stat(2)) al unui fișier mbox nevid este mai mare decât timpul de acces, fișierul are corespondență nouă. Multe MUA-uri plasează un antet „Status:” în fiecare mesaj pentru a indica ce mesaje au fost deja citite.

BLOCAREA
Deoarece fișierele mbox sunt accesate frecvent de mai multe programe în paralel, fișierele mbox nu ar trebui, în general, să fie accesate fără blocare.

Trei mecanisme de blocare diferite (și combinații ale acestora) sunt utilizate în general:

•   Blocarea fcntl(2) este utilizată în principal pe sistemele recente, conforme cu POSIX. Utilizarea acestei metode de blocare este, în special, recomandabilă în cazul în care fișierele mbox sunt accesate prin intermediul sistemului de fișiere de rețea (NFS), deoarece pare a fi singura modalitate de a invalida în mod fiabil spațiul de prestocare (cache) al clienților NFS.

•   Blocarea flock(2) este utilizată în principal pe sistemele bazate pe BSD.

•   Mecanismul „dotlocking” este utilizat pe toate tipurile de sisteme. Pentru a bloca un fișier mbox numit folder, o aplicație creează mai întâi un fișier temporar cu un nume unic în directorul în care se află folder. Apoi, aplicația încearcă să utilizeze apelul de sistem link(2) pentru a crea o legătură permanentă numită folder.lock cu fișierul temporar. Succesul apelului de sistem link(2) trebuie verificat suplimentar cu ajutorul apelurilor stat(2). În cazul în care legătura a reușit, dosarul de corespondență este considerat „dotlocked”. Fișierul temporar poate fi apoi dezlegat în siguranță.

    Pentru a elibera blocarea, o aplicație trebuie doar să dezlege fișierul folder.lock.

În cazul în care se combină mai multe metode, implementatorii trebuie să se asigure că utilizează variantele fără blocare ale apelurilor de sistem fcntl(2) și flock(2) pentru a evita blocajele.

În cazul în care se combină mai multe metode, nu trebuie să se considere că un fișier mbox a fost blocat cu succes înainte de a fi fost obținute toate blocările individuale. În cazul în care una dintre metodele individuale de blocare eșuează, o aplicație trebuie să elibereze toate dispozitivele de blocare pe care le-a obținut cu succes și să reia întreaga procedură de blocare de la început, după o întârziere corespunzătoare.

Mecanismul de blocare utilizat pe un anumit sistem este o chestiune de politică locală și ar trebui să fie utilizat în mod consecvent de toate aplicațiile instalate pe sistem care accesează fișiere mbox. Nerespectarea acestei reguli poate duce la pierderea datelor de corespondență electronică și la coruperea fișierelor mbox.

FIȘIERE
/var/spool/mail/$LOGNAME
    Dosarul de corespondență primită de $LOGNAME.

$HOME/mbox
    mesajele poștale arhivate ale utilizatorului, în directorul $HOME al acestuia.

$HOME/Mail/
    Un director din directorul $HOME al utilizatorului care este utilizat în mod obișnuit pentru a conține dosare în format mbox.

CONSULTAȚI ȘI
mutt(1), fcntl(2), flock(2), link(2), stat(2), asctime(3), maildir(5), mmdf(5), RFC822, RFC976, RFC2822

AUTOR
Thomas Roessler <roessler@does-not-exist.org>, Urs Janssen <urs@tin.org>

ISTORIC
Formatul mbox a apărut în AT&T Unix versiunea 6.
O variantă a acestui format a fost documentată în RFC976.

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.