dot-qmail(5) kontrola dostarczania wiadomości pocztowych

OPIS

Zazwyczaj program qmail-local dostarcza każdą nadchodzącą wiadomość do systemowej skrzynki użytkownika, domowy/Mailbox, gdzie domowy jest katalogiem domowym użytkownika.

Może jednak w zamian tego zapisać pocztę do innego pliku lub katalogu, przesłać ją do innego adresu, przekazać do listy dyskusyjnej, albo nawet wykonywać jakieś programy, wszystko zgodnie ze wskazaniami użytkownika.

PLIK QMAIL

By zmienić zachowanie lokalnego agenta dostarczającego qmail-local, należy ustawić plik .qmail w katalogu domowym.

.qmail zawiera jedną lub więcej linii. Każda linia jest instrukcją dostarczania. qmail-local podąża za każdą podaną w kolejności instrukcją. Istnieje pięć typów instrukcji dostarczania: (1) komentarz; (2) program; (3) forward; (4) mbox; (5) maildir.

(1)
Linie komentarzy zaczynają się znakiem krzyżyka:


     # to jest komentarz

qmail-local ignoruje te linie.

(2)
Linie programu do uruchomienia zaczynają się pionową kreską:


     |preline /usr/ucb/vacation djb

qmail-local traktuje resztę linii jako komendę wołaną z poziomu sh. Więcej informacji można uzyskać w qmail-command(8).

(3)
Linia typu forward zaczyna się znakiem ampersand:


     &[email protected]

qmail-local traktuje resztę tej linii jako adres poczty elektronicznej; używa qmail-queue by przekazać dalej wiadomość i dostarczyć ją pod wskazany adres. Adres musi zawierać pełną nazwę domenową; nie może zawierać dodatkowych spacji, pojedynczych nawiasów, albo komentarzy:


     # poniższe przykłady są błędne

     &ja@nowa

     &<[email protected]>

     & [email protected]

     &[email protected] (Nowy Adres)

Jeśli adres zaczyna się literą lub liczbą, to można pominąć znak ampersand:


     [email protected]

Proszę zauważyć, że qmail-local pomija nową zawartość linii Return-Path podczas przekazywania wiadomości dalej.

(4)
Linia mbox zaczyna się znakiem ukośnika (ang. slash) lub kropki, przy czym nigdy nie kończy się ukośnikiem:


     /home/djb/Mailbox.sos

qmail-local traktuje całą linię jako nazwę pliku. Dołącza wiadomość pocztową do tego pliku, używając w tym celu blokad w stylu flocka, jeśli to tylko możliwe. qmail-local przechowuje wiadomość pocztową w formacie mbox opisanym w mbox(5).

UWAGA: Na wielu systemach, każdy kto może odczytywać plik, może go też zablokować przy pomocy flocka i uniemożliwić w ten sposób dostarczanie przez qmail-local na zawsze. Nie należy nigdy dostarczać poczty do publicznie dostępnych plików!

Jeśli qmail-local potrafi zablokować plik, ale wystąpiły kłopoty z zapisem do niego (na przykład, ponieważ dysk jest pełen), to plik zostanie obcięty do swej poprzedniej, oryginalnej długości. Nie zapobiega to jednak uszkodzeniu skrzynki odbiorczej, jeśli system ulegnie wypadkowi podczas dostarczania poczty.

(5)
Linia maildir zaczyna się znakiem ukośnika lub kropki, a kończy się ukośnikiem:


     /home/djb/Maildir/

qmail-local traktuje całą linię jako nazwę katalogu w formacie maildir. Bezpiecznie zapamiętuje nadchodzącą wiadomość do tego katalogu. Więcej informacji można znaleźć w podręczniku maildir(5).

Jeśli .qmail ma ustawiony bit wykonywalności, to nie może zawierać żadnych linii typu program, mbox lub maildir. Jeśli qmail-local ujrzy którąkolwiek z tych linii, zakończy pracę i wskaże na chwilową usterkę.

Gdy .qmail jest kompletnie pusty (0 bajtów długości) lub jeśli nie istnieje, qmail-local postępuje według instrukcji defaultdelivery ustawionych przez administratora systemu; normalnie defaultdelivery wskazuje na ./Mailbox, więc qmail-local dołącza wiadomość pocztową do pliku Mailbox w formacie mbox.

.qmail może zawierać dodatkowe spacje i znaki tabulacji na końcu linii. Linie puste są dozwolone, lecz nie mogą występować jako pierwsze w pliku .qmail.

Jeśli plik .qmail jest zapisywalny przez wszystkich, wtedy qmail-local wstrzymuje pracę i wskazuje na tymczasową usterkę.

BEZPIECZNA EDYCJA PLIKU QMAIL

Przychodzące wiadomości mogą dotrzeć w każdym momencie. Aby bezpiecznie edytować plik .qmail, należy ustawić najpierw bit przyklejenia (ang. sticky) dla katalogu domowego:


     chmod +t $HOME

qmail-local odłoży chwilowo dostarczanie jakiejkolwiek wiadomości do użytkownika, którego katalog domowy ma ustawiony bit "sticky" (lub zapisywalny przez grupę lub zapisywalny przez wszystkich, co nie powinno nigdy wystąpić). Należy wykonać


     chmod -t $HOME

po skończonej edycji! Dobrym pomysłem jest przetestowanie nowego pliku .qmail w następujący sposób:


     qmail-local -n $USER ~ $USER '' '' '' '' ./Mailbox

ADRESY ROZSZERZEŃ

W systemie pocztowym qmail steruje się wszystkimi lokalnymi adresami, używając formy użytkownik-cokolwiek, równie dobrze jak użytkownik samodzielnie, gdzie użytkownik jest nazwą użytkownika. Dostarczanie do użytkownik-cokolwiek jest kontrolowane przez plik homedir/.qmail-cokolwiek. (Reguły te mogą być zmienione przez administratora systemu; patrz qmail-users(5)).

Użytkownik alias kontroluje wszystkie inne adresy. Dostarczanie lokalne jest kontrolowane przez plik homedir/.qmail-local, gdzie homedir jest katalogiem domowym aliasa.

W następującym opisie qmail-local zajmuje się wiadomością zaadresowaną do lokalny@domena, gdzie lokalny jest kontrolowany przez .qmail-dod. I oto co on czyni.

Jeśli .qmail-dod jest pusty, qmail-local postępuje według wskazówek określonych przez defaultdelivery ustawionych przez administratora.

Jeśli .qmail-dod nie istnieje, qmail-local spróbuje użyć jakichś innych, domyślnych plików .qmail Na przykład, jeśli zamiast naszego dod wstawimy foo-bar, to qmail-local spróbuje najpierw .qmail-foo-bar, potem .qmail-foo-default, i w końcu .qmail-default. Jeśli żaden z plików nie istnieje qmail-local odbije wiadomość. (Wyjątek: dla podstawowego adresu użytkownika, qmail-local traktuje nieistniejący plik .qmail tak samo, jak pusty plik .qmail).

OSTRZEŻENIE: Ze względów bezpieczeństwa, qmail-local zastępuje wszelkie kropki ciągu rozszerzenia dod znakami myślnika zanim dokona sprawdzenia .qmail-dod. Z powodu przyjętej konwencji, qmail-local konwertuje wszelkie duże litery w ciągu dod do liter małych.

Kiedy qmail-local przesyła dalej wiadomość, zgodnie z instrukcjami w .qmail-dod (lub .qmail-default), to sprawdza, czy istnieje plik .qmail-dod-owner. Jeśli tak to używa adresu lokalny-owner@domena jako kopertowego nadawcy (ang. sender) przekazywanej dalej wiadomości. W przeciwnym wypadku przepisywany jest oryginalny nadawca nadchodzącej wiadomości. Wyjątek: qmail-local zawsze przepisze oryginalnego nadawcę kopertowego, jeśli adres ten był pusty lub #@[], np. jest to wiadomość odbita.

qmail-local wspiera również zmienne kopertowe ścieżki powrotu (ang. variable envelope return paths, VERPs): jeśli istnieje .qmail-dod- i .qmail-dod-owner-default także, to jako kopertowy nadawca używany jest adres lokalny-owner-@domena-@[] . Spowoduje to, że odbiorca odbiorca@hostodbiorcy ujrzy nadawcę kopertowego jako lokalny-owner-odbiorca=hostodbiorcy@domena.

OBSŁUGA BŁĘDÓW

Jeśli instrukcje doręczania zawiodą, qmail-local wstrzymuje natychmiastowo działanie i zgłasza usterkę. qmail-local zajmuje się przesyłaniem dalej wiadomości po wszelkich innych instrukcjach, więc jakikolwiek błąd wcześniejszy może zakłócić forwarding.

Jeśli program kończy działanie z kodem 99, qmail-local ignoruje wszystkie początkowe linie pliku .qmail, lecz wciąż ma na uwadze poprzednie linie typu forward.

Aby ustawić niezależne od siebie instrukcje, gdzie chwilowy lub krytyczny błąd w jednej z nich nie wpływa na inne, należy przenieść każdą z instrukcji do oddzielnego pliku .qmail-dod i ustawić główny plik .qmail tak, żeby przesyłać używając wszystkich plików .qmail-dod. Należy zauważyć, że qmail-local może sobie poradzić z dowolną liczbą linii typu forward równocześnie.

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Paweł Wilk (PTM) <[email protected]> i Robert Luberda <[email protected]>.

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.