Linux.pl
Opcje wyszukiwania podręcznika man:
Lista stron man zaczynających się od znaku:
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   ALPHA   NUM   OTHER   ALL
maildir(5)                                                          maildir(5)

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
       milcząco  obcięty.  Co  gorsza: przy formacie mbox, jeśli list zostanie
       ucięty w środku linii,  to  milcząco  zostanie  złączony  z  następnym.
       Agent  transportu poczty (MTA) będzie później próbował ponownie dostar-
       czyć 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ą kom-
       pletny.

       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.  Ist-
       nieje kilka mechanizmów blokowania mbox  i  mh,  z  których  żaden  nie
       działa  przenośnie  i  niezawodnie.   W  przeciwieństwie  do tego, przy
       maildir żadne blokady nie są nigdy potrzebne.  Różne procesy dostarcza-
       nia 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  imple-
       mentacji  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, zaczy-
       nają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 1970 GMT, pid to identyfikator procesu  programu,  a
       and  host  jest nazwą hosta.  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 dostar-
       czony.

       Program dostarczający przed utworzeniem tmp/time.pid.host powinien uru-
       chomić  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ć
       innych 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)

                                                                    maildir(5)

Time taken: 0.00037 seconds


Created with the man page lookup class by Andrew Collington, php@amnuts.com