mbox(5) Podreczniki uzytkownika mbox(5) NAZWA mbox - Format pliku zawierajacego wiadomosci pocztowe OPIS Dokument ten opisuje format pliku tradycyjnie uzywanego na systemach uniksowych do lokalnego przechowywania wiadomosci e-mail. Pliki mbox zwyczajowo znajduja sie w systemowym katalogu poczty oraz pod roznymi nazwami w katalogach Mail uzytkownikow i pod nazwa mbox w katalogach domowych uzytkownikow. mbox jest plikiem tekstowym zawierajacym dowolna liczbe wiadomosci e-mail. Kazda wiadomosc sklada sie z datownika, po ktorym nastepuje tresc wiadomosci sformatowana zgodnie z RFC822 i RFC2822. Plik sklada sie z linii oddzielonych od siebie znakami konca linii (ASCII 10). Linia datownika sklada sie z czterech znakow "From", po ktorych wystepuja: znak spacji, adres nadawcy wiadomosci, kolejny znak spacji i na koncu oznaczenie czasu. Linia ta jest czesto nazywana linia From. Adres nadawcy powinien byc zgodny z addr-spec zdefiniowanym w rozdziale 3.4.1 dokumentu RFC2822. Oznaczenie czasu powinno byc w formacie data-czas zwracanym przez asctime(3). W celu zachowania wstecznej kompatybilnosci ze starym oprogramowaniem lata zapisane dwucyfrowo wieksze lub rowne 70 powinny byc interpretowane jako lata 1970+, podczas gdy lata zapisane dwucyfrowo mniejsze niz 70 powinny byc interpretowane jako lata od 2000 do 2069. Oprogramowanie odczytujace pliki w tym formacie powinno akceptowac takze nienumeryczna informacje o strefie czasowej, taka jak "CET DST" oznaczajaca letni czas srodkowoeuropejski (Central European Time, Daylight Saving Time). Przyklad: >From przyklad@przyklad.com Fri Jun 23 02:56:55 2000 Aby uniemozliwic niepoprawna interpretacje wystepujacych w tresci wiadomosci linii zaczynajacych sie od "From", po ktorych wystepuje znak spacji, program dostarczajacy poczte musi odpowiednio cytowac wszystkie wystapienia "From " na poczatku linii. Istnieja dwa rozne schematy cytowania: pierwszy (MBOXO) cytuje tylko zwykle linie "From " w tresci, poprzedzajac je znakiem ">", a drugi (MBOXRD) cytuje takze juz cytowane linie "From ", rowniez poprzedzajac je znakiem ">" (to jest ">From ", ">>From ", ...). Drugi sposob ma te zalete, ze linie takie jak >From the command line you can use the '-p' option nie sa niepoprawnie "odcytowywane", poniewaz program dostarczajacy poczte w sposob MBOXRD zamieni taka linie na >>From the command line you can use the '-p' option przed jej zapisaniem. Oprocz MBOXO i MBOXRD istnieje takze MBOXCL, ktory jest MBOXO z dolozonym polem "Content-Length", zawierajacym liczbe znakow wystepujacych w tresci wiadomosci; niektore programy wyswietlajace poczte (MUA), takie jak mutt(1), automatycznie przeksztalca skrzynki pocztowe MBOXO w MBOXCL podczas zapisu do nich, poniewaz format MBOXCL moze zostac bez zadnych problemow odczytany przez dowolny program pocztowy uzytkownika (MUA) wspierajacy format MBOXO. Jesli czas modyfikacji (zwyczajowo okreslany za pomoca stat(2)) niepustego pliku mbox jest wiekszy od czasu dostepu do tego pliku, to plik zawiera nowa poczte. Wiele programow obslugi poczty (MUA) dodaje do kazdej wiadomosci naglowek "Status:", okreslajacy, czy wiadomosc zostala juz przeczytana. BLOKADY Poniewaz pliki mbox czesto sa odczytywane przez wiele programow naraz, pliki mbox nie powinny byc przetwarzane bez ich wczesniejszego zablokowania. W powszechnym uzyciu znajduja sie trzy rozne mechanizmy blokowania (oraz ich kombinacje): o Blokady fcntl(2) uzywane glownie w nowszych systemach, zgodnych z POSIX. Uzycie tej metody jest w szczegolnosci zalecane, jezeli pliki mbox sa umieszczone na sieciowych systemach plikow (NFS), poniewaz wydaje sie to jedyna niezawodna metoda uniewazniania buforow podrecznych klientow NFS. o Blokady flock(2) uzywane glownie w systemach opartych na BSD. o Blokady "dotlocking" sa uzywane we wszystkich typach systemow. Aby zablokowac plik mbox o nazwie folder, aplikacja najpierw tworzy plik tymczasowy o unikatowej nazwie w katalogu, w ktorym znajduje sie folder. Nastepnie aplikacje uzywa wywolania systemowego link(2) do utworzenia dowiazania folder.lock do tego pliku tymczasowego. Powodzenie wywolania systemowego link(2) powinno byc dodatkowo potwierdzone za pomoca wywolania stat(2). Jesli tworzenie dowiazanie sie powiodlo, to folder pocztowy jest uwazany za zablokowany. Plik tymczasowy mozna wtedy usunac. Aby zwolnic blokade, aplikacja po prostu usuwa plik folder.lock. Jesli laczy sie wiele metod, to tworcy aplikacji powinni uzywac nieblokujacych wersji wywolan systemowych fcntl(2) i flock(2), tak aby uniknac zakleszczen (deadlocks). Jesli laczy sie wiele metod, to plik mbox nie moze byc uwazany za poprawnie zablokowany dopoty, dopoki wszystkie pojedyncze blokady nie zostana zalozone. Jesli chociaz jedna metoda blokowania zawiedzie, aplikacja powinna zwolnic wszelkie blokady, ktore wczesniej poprawnie zalozyla i - po odczekaniu odpowiedniego czasu - zaczac cala procedure blokowania od poczatku. Mechanizm blokowania uzywany w danym systemie zalezy od lokalnej polityki administratora i powinien byc konsekwentnie uzywany przez wszystkie zainstalowane w systemie aplikacje wymagajace dostepu do plikow mbox. Niezastosowanie sie do powyzszego moze prowadzic do gubienia wiadomosci pocztowych i uszkodzonych plikow mbox. PLIKI /var/mail/$LOGNAME Folder poczty przychodzacej uzytkownika $LOGNAME. $HOME/mbox Zarchiwizowane wiadomosci pocztowe uzytkownika w jego katalogu domowym $HOME. $HOME/Mail/ Podkatalog katalogu domowego $HOME uzytkownika powszechnie uzywany do przechowywania folderow w formacie mbox. ZOBACZ TAKZE mutt(1), fcntl(2), flock(2), link(2), stat(2), asctime(3), maildir(5), mmdf(5), RFC822, RFC976, RFC2822 AUTOR Thomas Roessler , Urs Janssen HISTORIA Format mbox pojawil sie w wersji 6 systemu AT&T Unix. Wariant tego formatu zostal opisany w dokumencie RFC976. TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Wojtek Kotwica i Robert Luberda Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Unix 19 lutego 2002 mbox(5)