Provided by:
manpages-pl_20060617-3_all 
NAZWA
maildir - katalog na przychodzce wiadomoci pocztowe
WPROWADZENIE
maildir jest struktur drzewiast katalogow listow przychodzcych.
Rozwizuje problemy niezawodnoci, jakie trapily pliki mbox i katalogi
pocztowe mh.
KWESTIE NIEZAWODNOCI
Podczas przekazywania listu moe nastpi zalamanie si systemu. W
przypadku plikow mbox, jak i katalogow mh list ten zostanie wowczas
milczco obcity. Co gorsza: przy formacie mbox, jeli list zostanie ucity
w rodku linii, to milczco zostanie zlczony z nastpnym. Agent
transportu poczty (MTA) bdzie poniej probowal ponownie dostarczy list,
ale jest niedopuszczalne, eby popsuta wiadomo w ogole si pojawiala. W
maildir kady list po przeslaniu jest z pewnoci kompletny.
Na danej maszynie mog rownoczenie pracowa dwa programy dostarczajce
poczt do tego samego uytkownika. Formaty mbox i mh wymagaj, by oba
programy aktualizowaly jeden centralny plik. Jeli nie korzystaj one z
jakiego mechanizmu blokowania, to plik ten zostanie uszkodzony.
Istnieje kilka mechanizmow blokowania mbox i mh, z ktorych aden nie
dziala przenonie i niezawodnie. W przeciwiestwie do tego, przy maildir
adne blokady nie s nigdy potrzebne. Rone procesy dostarczania nigdy
nie tykaj tego samego pliku.
Uytkownik moe probowa usun listy ze swojej skrzynki w tej samej chwili,
gdy maszyna dostarcza nowy list. Przy formatach mbox i mh czytnik
poczty uytkownika musi wiedzie, jakiego mechanizmu blokowania uywaj
programy dostarczajce poczt. Inaczej jest w przypadku maildir, gdzie
czytnik poczty moe bezpiecznie aktualizowa lub usuwa dowolny
dostarczony list.
Wiele orodkow korzysta z Sunowego Network Failure System (NFS), zapewne
dlatego, e dostawca systemu operacyjnego nie oferuje niczego innego.
NFS pogarsza wszystkie powysze problemy. Niektore z implementacji NFS
nie zapewniaj adnego solidnego mechanizmu blokowania. Przy formatach
mbox i mh, gdy dwie maszyny dostarczaj poczt do tego samego uytkownika
lub gdy uytkownik czyta poczt gdzie poza maszyn dostarczajc, jego
poczta jest zagroona. maildir dziala z NFS bez klopotow.
STRUKTURA MAILDIR
Katalog w formacie maildir ma trzy podkatalogi, wszystkie na tym samym
systemie plikow: tmp, new i cur.
Kady plik w new jest wieo 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 kocu. Wiadomo ma normalnie format RFC 822, zaczynajc si
liniami Return-Path i Delivered-To, ale moe zawiera dowolne dane
binarne. Moe nawet nie koczy si znakiem nowej linii.
Pliki w cur s takie jak w new. Ronic stanowi to, e pliki w cur nie s
ju nowymi listami: czytnik poczty uytkownika ju je widzial.
JAK LIST JEST DOSTARCZANY
Do zapewnienia niezawodnoci dostarczania wykorzystuje si katalog tmp.
Program dostarcza przesylk pocztow w szeciu 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 pocztku 1970 GMT, pid to identyfikator procesu programu, a
and host jest nazw hosta. W kroku trzecim, jeli stat() zwrocil co
innego ni ENOENT [ENOENT=plik nie istnieje], program zasypia na dwie
sekundy, aktualizuje time, i ponownie probuje stat(), ograniczon liczb
razy. W czwartym kroku program tworzy tmp/time.pid.host. W pitym
zapisuje przez zapis-NFS przesylk do utworzonego pliku. W szostym
kroku program, za pomoc link() tworzy nowe dowizanie tego pliku,
new/time.pid.host. W tym momencie list dostal pomylnie dostarczony.
Program dostarczajcy przed utworzeniem tmp/time.pid.host powinien
uruchomi 24-godzinny licznik czasu i porzuci dostarczanie jeli licznik
zostanie przekroczony. W przypadku wystpienia bldu, przekroczenia
limitu czasu czy normalnego zakoczenia dzialania, program moe sprobowa
uy unlink() do usunicia tmp/time.pid.host.
Zapis-NFS oznacza (1) jak zwykle, sprawdzenie liczby bajtow zwracanych
z kadego wywolania write(); (2) wywolanie fsync() i sprawdzenie
zwroconej wartoci; (3) wywolanie close() i sprawdzenie zwroconej
wartoci. (Standardowe implementacje NFS obsluguj fsync() niepoprawnie,
ale poprawiaj to niewlaciwym uyciem close().)
JAK LIST JEST CZYTANY
Czytnik poczty dziala jak nastpuje.
Przeglda katalog new szukajc nowych wiadomoci. Powiedzmy, e mamy nowy
list, new/unikat. Czytnik moe swobodnie wywietli 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 rownie, e czytnik przegldnie katalog tmp i wyczyci
ewentualne znalezione tam stare pliki. Plik w tmp mona bezpiecznie
usun jeli nie sigano do niego w cigu ostatnich 36 godzin.
Warto, by czytniki pomijaly wszystkie te pliki w new i cur, ktorych
nazwy zaczynaj si od kropki. Czytniki nie powinny probowa analizowa
innych nazw plikow.
ZMIENNE RODOWISKOWE
Czytniki poczty obslugujce maildir korzystaj ze zmiennej rodowiskowej
MAILDIR jako nazwy podstawowego katalogu pocztowego uytkownika.
ZOBACZ TAKE
mbox(5), qmail-local(8)
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.
maildir(5)