Provided by: manpages-pl_0.7-2_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)