Provided by: manpages-pl_0.7-1_all bug

NAZWA

       maildir - katalog na przychodzące wiadomości pocztowe

WPROWADZENIE

       maildir  jest  strukturą  drzewiastą  katalogów listów przychodzących. Rozwiązuje problemy
       niezawodności, jakie trapiły pliki mbox i katalogi pocztowe mh.

KWESTIE NIEZAWODNOŚCI

       Podczas przekazywania listu może nastąpić załamanie się systemu. W przypadku plików  mbox,
       jak i katalogów mh list ten zostanie wówczas obcięty. Co gorsza: przy formacie mbox, jeśli
       list zostanie ucięty w środku linii, to zostanie złączony z następnym.   Agent  transportu
       poczty  (MTA)  będzie później próbował ponownie dostarczyć list, ale jest niedopuszczalne,
       żeby popsuta wiadomość w ogóle się pojawiała. W maildir każdy list po  przesłaniu  jest  z
       pewnością kompletny.

       Na  danej  maszynie  mogą  równocześnie pracować dwa programy dostarczające pocztę do tego
       samego użytkownika. Formaty mbox i  mh  wymagają,  by  oba  programy  aktualizowały  jeden
       centralny  plik.  Jeśli  nie  korzystają one z jakiegoś mechanizmu blokowania, to plik ten
       zostanie uszkodzony.  Istnieje kilka mechanizmów blokowania mbox i mh, z których żaden nie
       działa przenośnie i niezawodnie. W przypadku maildir żadne blokady nie są nigdy potrzebne.
       Różne procesy dostarczania nigdy nie tykają tego samego pliku.

       Użytkownik może próbować usunąć listy ze swojej skrzynki w tej samej chwili,  gdy  maszyna
       dostarcza  nowy  list.  Przy formatach mbox i mh czytnik poczty użytkownika musi wiedzieć,
       jakiego mechanizmu blokowania  używają  programy  dostarczające  pocztę.  Inaczej  jest  w
       przypadku  maildir,  gdzie czytnik poczty może bezpiecznie aktualizować lub usuwać dowolny
       dostarczony list.

       Wiele ośrodków korzysta z Sunowego Network  Failure  System  (NFS),  zapewne  dlatego,  że
       dostawca  systemu operacyjnego nie oferuje niczego innego. NFS pogarsza wszystkie powyższe
       problemy. Niektóre  z  implementacji  NFS  nie  zapewniają  żadnego  solidnego  mechanizmu
       blokowania.  Przy  formatach mbox i mh, gdy dwie maszyny dostarczają pocztę do tego samego
       użytkownika lub gdy użytkownik czyta pocztę gdzieś poza maszyną dostarczającą, jego poczta
       jest zagrożona. maildir działa z NFS bez kłopotów.

STRUKTURA MAILDIR

       Katalog  w  formacie  maildir ma trzy podkatalogi, wszystkie na tym samym systemie plików:
       tmp, new i cur.

       Każdy plik w new jest świeżo dostarczonym  listem.  Czas  modyfikacji  pliku  jest  czasem
       dostarczenia.  List  jest dostarczany bez dodatkowej linii From_ w stylu UUCP, bez żadnego
       cytowania >From i bez dodatkowej pustej linii na końcu.  Wiadomość ma normalnie format RFC
       822,  zaczynając  się  liniami  Return-Path i Delivered-To, ale może zawierać dowolne dane
       binarne.  Może nawet nie kończyć się znakiem nowej linii.

       Pliki w cur są takie jak w new.  Różnicę stanowi to, że pliki w  cur  nie  są  już  nowymi
       listami: czytnik poczty użytkownika już je widział.

JAK LIST JEST DOSTARCZANY

       Do zapewnienia niezawodności dostarczania wykorzystuje się katalog tmp.

       Program  dostarcza  przesyłkę  pocztową  w  sześciu etapach. Najpierw, wykonuje chdir() do
       katalogu  maildir.  Potem  pobiera  za  pomocą  stat()  informacje  o   pliku   o   nazwie
       tmp/time.pid.host,  gdzie time to liczba sekund od początku roku 1970 strefy czasowej GMT,
       pid to identyfikator procesu programu, a  host jest  nazwą  komputera.  W  kroku  trzecim,
       jeśli  stat() zwrócił coś innego niż ENOENT [ENOENT=plik nie istnieje], program zasypia na
       dwie sekundy, aktualizuje time, i ponownie próbuje  stat(),  ograniczoną  liczbę  razy.  W
       czwartym  kroku  program  tworzy  tmp/time.pid.host.  W  piątym  zapisuje  przez zapis-NFS
       przesyłkę do utworzonego pliku. W szóstym kroku program,  za  pomocą  link()  tworzy  nowe
       dowiązanie   tego   pliku,   new/time.pid.host.  W  tym  momencie  list  dostał  pomyślnie
       dostarczony.

       Program dostarczający przed utworzeniem tmp/time.pid.host powinien  uruchomić  24-godzinny
       licznik  czasu  i  porzucić  dostarczanie jeśli licznik zostanie przekroczony. W przypadku
       wystąpienia błędu,  przekroczenia  limitu  czasu  czy  normalnego  zakończenia  działania,
       program może spróbować użyć unlink() do usunięcia tmp/time.pid.host.

       Zapis-NFS oznacza (1) jak zwykle, sprawdzenie liczby bajtów zwracanych z każdego wywołania
       write(); (2) wywołanie fsync() i sprawdzenie zwróconej wartości; (3) wywołanie  close()  i
       sprawdzenie   zwróconej   wartości.   (Standardowe  implementacje  NFS  obsługują  fsync()
       niepoprawnie, ale poprawiają to niewłaściwym użyciem close()).

JAK LIST JEST CZYTANY

       Czytnik poczty działa jak następuje.

       Przegląda  katalog  new,  szukając  nowych  wiadomości.  Powiedzmy,  że  mamy  nowy  list,
       new/unikat.  Czytnik  może  swobodnie wyświetlić zawartość pliku new/unikat, usunąć go lub
       zmienić   mu   nazwę   na   cur/unikat:info.   Znaczenie   info   opisano    na    stronie
       http://pobox.com/~djb/proto/maildir.html.

       Oczekuje  się również, że czytnik przeglądnie katalog tmp i wyczyści ewentualne znalezione
       tam stare pliki.  Plik w tmp można bezpiecznie usunąć jeśli nie sięgano do niego  w  ciągu
       ostatnich 36 godzin.

       Warto, by czytniki pomijały wszystkie te pliki w new i cur, których nazwy zaczynają się od
       kropki. Czytniki nie powinny próbować analizować nazw plików.

ZMIENNE ŚRODOWISKOWE

       Czytniki poczty obsługujące maildir korzystają  ze  zmiennej  środowiskowej  MAILDIR  jako
       nazwy podstawowego katalogu pocztowego użytkownika.

ZOBACZ TAKŻE

       mbox(5), qmail-local(8)

TŁUMACZENIE

       Autorami  polskiego tłumaczenia niniejszej strony podręcznika man są: Wojtek Kotwica (PTM)
       <wkotwica@post.pl> i Robert Luberda <robert@debian.org>.

       Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów  na
       stronie   http://sourceforge.net/projects/manpages-pl/.   Jest   zgodne   z  wersją   1.06
       oryginału.

                                                                                       maildir(5)