.\" -*- coding: UTF-8 -*-
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH maildir 5   
.SH NAZWA
maildir \- katalog na przychodzące wiadomości pocztowe
.SH WPROWADZENIE
\fImaildir\fP jest strukturą drzewiastą katalogów listów
przychodzących. Rozwiązuje problemy niezawodności, jakie trapiły pliki
\fImbox\fP i katalogi pocztowe \fImh\fP.
.SH "KWESTIE NIEZAWODNOŚCI"
Podczas przekazywania listu może nastąpić załamanie się systemu. W przypadku
plików \fImbox\fP, jak i katalogów \fImh\fP list ten zostanie wówczas obcięty. Co
gorsza: przy formacie \fImbox\fP, 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 \fImaildir\fP 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 \fImbox\fP i \fImh\fP 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 \fImbox\fP i \fImh\fP, z których żaden nie działa
przenośnie i niezawodnie. W przypadku \fImaildir\fP ż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 \fImbox\fP i \fImh\fP czytnik
poczty użytkownika musi wiedzieć, jakiego mechanizmu blokowania używają
programy dostarczające pocztę. Inaczej jest w przypadku \fImaildir\fP, gdzie
czytnik poczty może bezpiecznie aktualizować lub usuwać dowolny dostarczony
list.

Wiele ośrodków korzysta z Sunowego \fBNetwork F\fPa\fBil\fPur\fBe System\fP (NFS),
zapewne dlatego, że dostawca systemu operacyjnego nie oferuje niczego
innego. NFS pogarsza wszystkie powyższe problemy. Niektóre z implementacji
NFS nie zapewniają \fBżadnego\fP solidnego mechanizmu blokowania. Przy
formatach \fImbox\fP i \fImh\fP, 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. \fImaildir\fP działa z NFS bez
kłopotów.
.SH "STRUKTURA MAILDIR"
Katalog w formacie \fImaildir\fP ma trzy podkatalogi, wszystkie na tym samym
systemie plików: \fBtmp\fP, \fBnew\fP i \fBcur\fP.

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

Pliki w \fBcur\fP są takie jak w \fBnew\fP.  Różnicę stanowi to, że pliki w \fBcur\fP
nie są już nowymi listami: czytnik poczty użytkownika już je widział.
.SH "JAK LIST JEST DOSTARCZANY"
Do zapewnienia niezawodności dostarczania wykorzystuje się katalog \fBtmp\fP.

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

Program dostarczający przed utworzeniem \fBtmp/\fP\fItime.pid.host\fP 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ć
\fBunlink()\fP do usunięcia \fBtmp/\fP\fItime.pid.host\fP.

\fIZapis\-NFS\fP oznacza (1) jak zwykle, sprawdzenie liczby bajtów zwracanych z
każdego wywołania \fBwrite()\fP; (2) wywołanie \fBfsync()\fP i sprawdzenie
zwróconej wartości; (3) wywołanie \fBclose()\fP i sprawdzenie zwróconej
wartości. (Standardowe implementacje NFS obsługują \fBfsync()\fP niepoprawnie,
ale poprawiają to niewłaściwym użyciem \fBclose()\fP).
.SH "JAK LIST JEST CZYTANY"
Czytnik poczty działa jak następuje.

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

Oczekuje się również, że czytnik przeglądnie katalog \fBtmp\fP i wyczyści
ewentualne znalezione tam stare pliki.  Plik w \fBtmp\fP 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 \fBnew\fP i \fBcur\fP, których
nazwy zaczynają się od kropki. Czytniki nie powinny próbować analizować nazw
plików.
.SH "ZMIENNE ŚRODOWISKOWE"
Czytniki poczty obsługujące \fImaildir\fP korzystają ze zmiennej środowiskowej
\fBMAILDIR\fP jako nazwy podstawowego katalogu pocztowego użytkownika.
.SH "ZOBACZ TAKŻE"
mbox(5), qmail\-local(8)

.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są:
Wojtek Kotwica <wkotwica@post.pl>
i
Robert Luberda <robert@debian.org>
.

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres
.MT
manpages-pl-list@lists.sourceforge.net
.ME .
