Provided by: manpages-pl_4.27.0-1_all bug

NAZWA

       procmailrc - plik rc procmaila

SKŁADNIA

       $HOME/.procmailrc

OPIS

       Szybką  orientację  w  temacie  można  uzyskać,  czytając  UWAGI  umieszczone na końcu strony podręcznika
       procmail(1).

       Plik rc składa się z przypisań zmiennych środowiskowych (niektóre z nich  mają  specjalne  znaczenie  dla
       procmaila)  i  reguł. W najprostszej postaci, reguły są po prostu jednoliniowymi wyrażeniami regularnymi,
       które są poszukiwane w nagłówkach przychodzącej poczty. Pierwsza reguła, która zostanie dopasowana,  jest
       używana  do  określenia, gdzie dany list ma pójść (zwykle do pliku). Jeśli przetwarzanie dojdzie do końca
       pliku rc, procmail dostarczy pocztę do $DEFAULT.

       Istnieją  dwa  rodzaje  reguł:  dostarczające  i  niedostarczające.  Jeśli  dopasowana  zostanie   reguła
       dostarczająca,  procmail  zakłada,  że  poczta  (jak  się  można  domyślić)  jest  dostarczona i zakończy
       przetwarzanie  pliku  rc  po  wykonaniu  linii   akcji   reguły.   Jeśli   dopasowana   zostanie   reguła
       niedostarczająca, to przetwarzanie pliku rc będzie kontynuowane nawet po wykonaniu akcji tej reguły.

       Reguły dostarczające są tymi, które powodują zapis nagłówka lub ciała listu do pliku, jego zaabsorbowanie
       przez program lub przekazanie (forwardowanie) do innego adresu pocztowego.

       Reguły  niedostarczające  to te, które łapią wyjście programu lub filtru z powrotem do procmaila, lub te,
       które rozpoczynają zagnieżdżony blok.

       Można powiedzieć procmailowi, by traktował regułę dostarczającą jako niedostarczającą poprzez przekazanie
       takiej regule flagi "c". Spowoduje to, że procmail wygeneruje kopię listu (carbon copy), dostarczając  go
       regule i kontynuując przetwarzanie pliku rc.

       Używając dowolnej liczby reguł, można posortować pocztę wprost do określonych folderów pocztowych. Należy
       pamiętać  jednak,  że  poczta  może  wpływać do tych folderów w tym samym momencie (jeśli kilka procmaili
       działa naraz, co nie jest nieprawdopodobne przy dużej ilości poczty). Aby upewnić się, że nie  narobi  to
       bałaganu, zalecane jest robienie właściwego użytku z plików blokujących.

       Inicjacje  zmiennych  środowiskowych  i  reguły  mogą być swobodnie przeplatane w pliku rc. Jeśli zmienna
       środowiskowa ma dla procmaila specjalne znaczenie, zostanie użyta odpowiednio w  momencie  przetwarzania.
       (np.  można  zmienić  katalog  bieżący,  kiedy  tylko  jest  taka potrzeba, przez podanie nowego MAILDIR,
       zamienić  pliki  blokujące  przez  podanie  nowego  LOCKFILE,  zmienić  umask,  itd.,   możliwości   jest
       nieskończenie wiele :-).

       Inicjacje  i podstawienia tych zmiennych środowiskowych są obsługiwane dokładnie jak w sh(1) (włączając w
       to wszystkie możliwe  cytowania  i  sekwencje  specjalne)  i  dodatkowo:  spacje  dookoła  znaku  "="  są
       ignorowane,  a każda zmienna nie zawierająca końcowego "=" zostanie usunięta ze środowiska. Każdy program
       w odwrotnych apostrofach, uruchomiony przez procmail, będzie miał przekazany cały list na  swoim  wejściu
       (stdin).

   Komentarze
       Słowo  zaczynające  się  od # wraz z wszystkimi znakami występującymi po nim aż do znaku nowej linii jest
       ignorowane. Nie dotyczy to linii warunkowych, które nie mogą być komentowane.

   Reguły
       Linia zaczynająca się od ":" oznacza początek reguły. Ma następujący format:

              :0 [flagi] [ : [lokalnyplikblokujący] ] <zero lub więcej warunków
              (jeden na linię)> <dokładnie jedna linia akcji>

       Warunki zaczynają się od "*" i wszystko, co  następuje  po  tym  znaku,  jest  przekazywane  niezmienione
       wewnętrznemu  egrepowi,  z  wyjątkiem  początkowych  i  końcowych  białych spacji. Wyrażenia regularne są
       całkowicie  kompatybilne   z  normalnymi  wyrażeniami  regularnymi  egrep(1).  Zobacz  także  Rozszerzone
       wyrażenia regularne.

       Warunki są logicznie koniugowane; jeżeli nie ma warunków, wynik jest domyślnie prawdziwy.

       Flagi mogą być dowolnymi z następujących:

       H    Egrepuj nagłówek (domyślnie).

       B    Egrepuj ciało.

       D    Powiedz  wewnętrznemu  egrepowi,  aby  rozróżniał  duże  i  małe  litery (zachowaniem domyślnym jest
            ignorowanie wielkości liter).

       A    Ta reguła będzie zależeć od ostatniej poprzedzającej reguły (na bieżącym poziomie zagnieżdżenia) bez
            flagi "A" lub "a". Umożliwia to wiązanie akcji zależących od wspólnego warunku.

       a    Ma takie samo znaczenie jak flaga "A" z dodatkowym warunkiem mówiącym, że bezpośrednio poprzedzająca
            reguła musi się  pomyślnie zakończyć przed uruchomieniem bieżącej reguły.

       E    Ta reguła jest  wykonywana  tylko,  jeśli  bezpośrednio  poprzedzająca  reguła  nie  była  wykonana.
            Wykonanie  tej  reguły wyłącza także wszelkie bezpośrednio następujące reguły z flagą "E". Umożliwia
            to definiowanie akcji typu "else if".

       e    Ta reguła jest wykonywana tylko, jeśli bezpośrednio  poprzedzająca  reguła  się  nie  powiodła  (tj.
            podjęto próbę wykonania akcji, ale skończyła się ona błędem).

       h    Przesyła nagłówek listu do potoku, pliku lub innego miejsca docelowego (domyślne).

       b    Przesyła ciało listu do potoku, pliku lub innego miejsca docelowego (domyślne).

       f    Zakłada, że potok jest filtrem.

       c    Generuje  kopię  carbon  copy  tego  listu.  Ma  to  tylko  sens  dla  reguł dostarczających. Jedyną
            niedostarczającą regułą, dla której flaga ta ma jakiś skutek jest wypadek zagnieżdżonego bloku  —  w
            celu  wygenerowania  kopii  proces  procmaila  zostanie  sklonowany  (pliki  blokujące  nie  zostaną
            odziedziczone); podczas gdy klon będzie pracować jak zwykle, rodzic przeskoczy blok.

       w    Czeka na zakończenie filtru lub programu i sprawdza kod wyjścia (normalnie ignorowany); jeśli  filtr
            zwrócił błąd, tekst nie był filtrowany.

       W    Ma takie samo znaczenie jak flaga "w", lecz powstrzyma wszelkie informacje typu "Program failure".

       i    Ignoruje wszelkie błędy zapisu na tej regule (np. zwykle przez wcześnie zamknięty potok).

       r    Tryb surowy: nie próbuje zapewnić, że list kończy się pustą linią i zapisuje go  takim, jakim jest.

       Istnieją pewne warunki specjalne, których można użyć, a które nie są w pełni wyrażeniami regularnymi. Aby
       je wybrać, warunek musi zaczynać się od:

       !    Odwraca warunek.

       $    Oszacowuje  resztę  warunku według reguł podstawiania sh(1)  wewnątrz podwójnych cudzysłowów, pomija
            początkowe białe spacje i ponownie przetwarza regułę.

       ?    Używa kodu wyjścia podanego programu.

       <    Sprawdza, czy całkowita długość listu jest krótsza niż podana (dziesiętnie) liczba bajtów.

       >    Analogiczne do "<".

       zmienna ??
            Porównuje resztę warunku z wartością tej zmiennej środowiskowej (nie  może  to  być  pseudozmienna).
            Specjalnymi wypadkami są zmienne "B", "H", "HB" i "BH", które zwyczajnie przeciążają domyślny obszar
            przeszukiwania nagłówka/ciała (header/body) zdefiniowanego na początku dla tej reguły.

       \    Aby zacytować dowolny z powyższych znaków na początku linii.

   Lokalny plik blokujący
       Jeśli  umieści  się  drugi  (kończący)  ":"  w  pierwszej linii reguły, to procmail użyje lokalnego pliku
       blokującego (locallockfile; tylko dla tej reguły). Opcjonalnie można  podać  nazwę  pliku,  który  będzie
       użyty; jednak jeśli się tego nie zrobi,  procmail użyje nazwy pliku celu (lub nazwy pliku następującej po
       pierwszym ">>") i dopisze do niej $LOCKEXT.

   Linia akcji reguły
       Linia akcji może zaczynać się od następujących znaków:

       !      Przekazuje (forwarduje) e-mail do wszystkich podanych adresów pocztowych.

       |      Uruchamia   określony  program,  prawdopodobnie  w  $SHELL-u,  jeśli  wykryto  któryś   ze  znaków
              $SHELLMETAS. Można opcjonalnie poprzedzić ten symbol potoku wyrażeniem zmienna=, co spowoduje,  że
              standardowe  wyjście  (stdout)  programu  zostanie  przechwycone do zmiennej środowiskowej zmienna
              (procmail nie zakończy przetwarzania pliku rc w tym momencie). Jeśli podany zostanie tylko  symbol
              potoku, bez żadnego programu, to procmail wypisze list na stdout.

       {      Jeśli następuje za tym przynajmniej jedna spacja, tabulacja lub nowa linia, to oznacza to początek
              zagnieżdżonego  bloku. Wszystko, aż do następnego nawiasu zamykającego, będzie zależeć od warunków
              podanych dla tej reguły. Dozwolone jest nieograniczone zagnieżdżanie. Nawias  zamykający  istnieje
              zwyczajnie  po  to,  by  oddzielić blok; w żadnym wypadku nie wywoła zakończenia procmaila w żaden
              sposób. Po dotarciu do końca bloku, przetwarzanie będzie kontynuowane, jak zwykle, po  tym  bloku.
              W bloku zagnieżdżonym flagi "H" i "B" dotyczą tylko warunków prowadzących do tego bloku, flagi "h"
              i "b"  w ogóle nie działają.

       Wszystko  inne będzie uznawane za nazwę skrzynki pocztowej (zarówno nazwę pliku lub katalogu, bezwzględną
       lub względną w stosunku do bieżącego katalogu (zobacz opis zmiennej MAILDIR)). Jeśli jest to (możliwe  że
       jeszcze nieistniejąca) nazwa pliku, poczta zostanie do niego doklejona.

       Jeśli  jest  to  katalog,  poczta  zostanie  dostarczona  do nowo utworzonego, unikatowego pliku o nazwie
       $MSGPREFIX* w podanym katalogu. Jeśli nazwa skrzynki pocztowej kończy  się  "/.",  to  katalog  ten  jest
       uznawany za folder MH, tj. procmail użyje następnego numeru, który będzie dostępny.  Jeśli nazwa skrzynki
       pocztowej  kończy  się  znakiem "/", to ten katalog jest uznawany za folder maildir, tj. procmail zapisze
       pocztę w pliku w podkatalogu o nazwie "tmp", a następnie przeniesie go do  podkatalogu  o  nazwie  "new".
       Jeśli skrzynka pocztowa jest podana jako folder MH lub maildir, procmail utworzy wymagane katalogi, jeśli
       nie  istnieją,  zamiast  traktować  skrzynkę  pocztową  jako  nieistniejącą.  Gdy  procmail  dostarcza do
       katalogów, można podać wiele katalogów, do których należy dostarczyć (procmail dostarczy pocztę, używając
       twardych dowiązań).

   Domyślne wartości zmiennych środowiskowych
       LOGNAME, HOME i SHELL Twoje (odbiorcy) wartości domyślne

       PATH                  $HOME/bin :/usr/local/bin :/usr/bin  :/bin   (z   wyjątkiem   przetwarzania   pliku
                             /etc/procmailrc, w którego czasie zostanie ustawione na "/usr/local/bin:/usr/bin
                             :/bin".)

       SHELLMETAS            &|<>~;?*[

       SHELLFLAGS            -c

       ORGMAIL               /var/mail/$LOGNAME
                             (Chyba że podano -m, wtedy opcja ta jest nieustawiona)

       MAILDIR               $HOME
                             (Chyba  że  nazwa  pierwszego  pomyślnie  otwartego pliku rc zaczyna się od "./", w
                             którym wypadku wartością domyślną jest ".")

       DEFAULT               $ORGMAIL

       MSGPREFIX             msg.

       SENDMAIL              /usr/sbin/sendmail

       SENDMAILFLAGS         -oi

       HOST                  Nazwa bieżącego komputera

       COMSAT                no
                             (Jeśli plik rc jest podany w linii komend)

       PROCMAIL_VERSION      3.23pre

       LOCKEXT               .lock

       Inne czyszczone lub preustawiane zmienne środowiskowe to IFS, ENV i PWD.

       Z powodów bezpieczeństwa podczas startu procmail wyrzuci wszystkie zmienne środowiskowe, co do których ma
       podejrzenia, że mogą wpływać na działanie dynamicznego konsolidatora (ld.so(8)).

   Środowisko
       Zanim zgubisz się w mętliku zmiennych środowiskowych, pamiętaj że wszystkie one  mają  sensowne  wartości
       domyślne.

       MAILDIR     Bieżący katalog w momencie, gdy procmail jest uruchomiany (znaczy to, że wszystkie ścieżki są
                   relatywne do $MAILDIR).

       DEFAULT     Domyślny  plik mailbox (jeśli nie powiedziano inaczej, procmail wrzuci pocztę do tego pliku).
                   Procmail automatycznie użyje $DEFAULT$LOCKEXT jako pliku blokującego przed zapisaniem  czegoś
                   do  tej  skrzynki  pocztowej. Nie trzeba ustawiać tej zmiennej, ponieważ standardowo wskazuje
                   ona na standardową skrzynkę pocztową systemu.

       LOGFILE     Plik ten będzie  zawierał  wszelkie  komunikaty  diagnostyczne  i  komunikaty  o  błędach  od
                   procmaila  (zazwyczaj  żadne)  lub  od innych programów uruchomionych przez procmaila.  Jeśli
                   plik ten nie jest podany, komunikaty będą przesyłane e-mailem z powrotem do  nadawcy.  Zobacz
                   także LOGABSTRACT.

       VERBOSE     Ustawiając  tę zmienną na "yes" lub "on", można włączyć rozszerzoną diagnostykę, wyłączyć zaś
                   można ją przez ustawienie zmiennej na "no" lub "off".

       LOGABSTRACT Zanim procmail zakończy, raportuje dostarczoną wiadomość w $LOGFILE, pokazując pola "From " i
                   "Subject: " nagłówka, folder, w którym  wiadomość  została  zapisana,  oraz  jej  długość  (w
                   bajtach).  Ustawienie  tej  zmiennej  na  "no"  powstrzymuje  generowanie tych informacji. Po
                   ustawieniu  jej  na  "all",  procmail  będzie  logował  każdą  pomyślnie  zakończoną   regułę
                   dostarczenia, którą przetworzy.

       LOG         Wartość przypisana tej zmiennej będzie dopisana do pliku $LOGFILE.

       ORGMAIL     Zazwyczaj  mailbox  systemowy (ORiGinal MAILbox).  Jeśli z jakiegoś powodu (jak przepełnienie
                   systemu plików), list nie mógł być dostarczony do tego mailboxa,  to  procmail  dostarczy  go
                   tutaj. Jeśli jednak nie będzie mógł nawet tego uczynić, to list zostanie odbity do nadawcy.

       LOCKFILE    Globalny  plik  blokujący.  Jeśli  plik ten już istnieje, procmail będzie czekał aż zniknie i
                   utworzy go samodzielnie (i  wyczyści  gdy  skończy).  Jeśli  podano  więcej  niż  jeden  plik
                   blokujący,  to poprzedni zostanie usunięty przed próbą utworzenia nowego. Używanie globalnego
                   pliku blokującego jest złą praktyką, lepiej używać lokalnych (zależnych od reguły).

       LOCKEXT     Domyślne rozszerzenie, które jest dodawane do plików  docelowych,  aby  określić,  którego  z
                   lokalnych  plików  blokujących użyć (tylko jeśli używanie tych plików jest włączone dla danej
                   reguły).

       LOCKSLEEP   Liczba sekund, które procmail ma odespać przed każdą kolejną próbą użycia  pliku  blokującego
                   (jeśli taki już istniał); jeśli liczby nie podano, to wynosi ona 8 sekund.

       LOCKTIMEOUT Liczba  sekund,  które muszą minąć od utworzenia lub ostatniej modyfikacji pliku blokującego,
                   zanim procmail zdecyduje, że jest to plik blokujący pozostawiony w wyniku błędu i  że  trzeba
                   go  usunąć  na siłę. Wartość zero mówi, że timeout nie jest ustawiony i że procmail ma czekać
                   do skutku. Jeśli nie jest podany, to odpowiada 1024 sekundom. Wartość  ta  jest  przydatna  w
                   zapobieganiu  niezdefiniowanym zawieszeniom programów sendmail(8) lub procmail. Procmail jest
                   odporny na różnice w czasie lokalnym na różnych komputerach.

       TIMEOUT     Liczba sekund, które muszą minąć zanim  procmail  zdecyduje,  że  dziecko,  które  uruchomił,
                   musiało  się  zawiesić. Program odbierze od procmaila sygnał TERMINATE, a przetwarzanie pliku
                   rc pójdzie dalej. Jeśli podano zero, to nie będzie tu używany  czas  oczekiwania  i  procmail
                   będzie  czekać  do  skutku;  jeśli  zmienna  nie  jest podana, wartość domyślna odpowiada 960
                   sekundom.

       MSGPREFIX   Przedrostek nazwy pliku, który jest używany w wypadku dostarczania do katalogu (nie używany w
                   katalogach maildir lub MH).

       HOST        Jeśli nie jest to nazwa bieżącego komputera, to  przetwarzanie  bieżącego  pliku  rc  zostaje
                   natychmiast  przerywane.  Jeśli  w linii komend podano inne pliki rc, to przetwarzanie będzie
                   kontynuowane z następnym z nich. Jeśli  wykorzystane  zostaną  wszystkie  pliki  rc,  program
                   zakończy  pracę,  lecz  nie  wygeneruje błędu (np. mailer będzie sądził, że wiadomość została
                   dostarczona).

       UMASK       Nazwa mówi za siebie (jeśli nie, zapomnij  o  tym  :-).   Cokolwiek  zostanie  przypisane  do
                   zmiennej  UMASK jest interpretowane jako wartość ósemkowa. Jeśli nie jest podana, to domyślna
                   wartość maski wynosi 077. Jeśli maska zezwala na ustawienie o+x, to owo o+x  zostanie  dodane
                   do  praw  dostępu  wszystkich  skrzynek  pocztowych,  do  których  procmail  dostarcza pocztę
                   bezpośrednio. Może to być używane do sprawdzania, czy przybyła nowa poczta.

       SHELLMETAS  Jeśli jakikolwiek ze znaków wymienionych w SHELLMETAS pojawi się w linii  określającej  filtr
                   lub   program,  to  linia  zostanie  przekazana  powłoce  $SHELL,  a  nie  zostanie  wywołana
                   bezpośrednio.

       SHELLFLAGS  Każde wywołanie powłoki $SHELL będzie następujące:
                   "$SHELL" "$SHELLFLAGS" "$*";

       SENDMAIL    Jeśli nie używa się właściwości forwardowania, nie należy  się  tym  przejmować.  Określa  to
                   program wzywany do forwardowania poczty.
                   Jest wywoływany jako: "$SENDMAIL" $SENDMAILFLAGS "$@";

       NORESRETRY  Liczba  powtórek,  które  mają  być  dokonane  po wystąpieniu jednego z błędów "process table
                   full", "file table full", "out of memory" lub "out of  swap  space".  Jeśli  liczba  ta  jest
                   ujemna,  procmail  będzie  próbował  wiecznie;  jeśli  nie jest podana, odpowiada wartości 4.
                   Powtórki zachodzą co każde $SUSPEND sekund. Idea, która się za tym kryje, jest taka, że jeśli
                   np. całkowicie wykorzystane zostały obszar pamięci wymiany lub  tablica  procesów,  to  wiele
                   innych  programów wykryje to także i przerwie działanie lub "padnie", zwalniając cenne zasoby
                   procmailowi.

       SUSPEND     Liczba sekund, podczas których procmail będzie czekał, jeśli musi, na coś,  co  obecnie  jest
                   niedostępne  (pamięć,  fork,  itd.);  jeśli nie podano, to wartością domyślną jest 16 sekund.
                   Zobacz także: LOCKSLEEP.

       LINEBUF     Długość wewnętrznych buforów liniowych, nie może  być  mniejsza  niż  128.   Wszystkie  linie
                   odczytywane  z  pliku rc nie powinny mieć więcej niż $LINEBUF znaków przed i po rozszerzeniu.
                   Jeśli wartość nie jest podana, odpowiada 2048. Limitu tego  oczywiście  nie  stosuje  się  do
                   samego  listu,  który  może  mieć dowolne długości linii lub może być plikiem binarnym. Patrz
                   także opis PROCMAIL_OVERFLOW.

       DELIVERED   Jeśli ustawione na "yes", to procmail  będzie  udawał  przed  agentem  pocztowym,  że  poczta
                   została  dostarczona.  Jeśli  poczta nie mogła być dostarczona po napotkaniu tego ustawienia,
                   zostanie utracona (tj. nie będzie zwrócona do nadawcy).

       TRAP        Gdy procmail będzie kończył działanie,  ale  nie  z  powodu  otrzymania  sygnału,  to  wywoła
                   zawartość   tej  zmiennej.  Kopia  listu  może  być  odczytana  ze  stdin.  Wszelkie  wyjście
                   wyprodukowane przez tę komendę będzie dodane do pliku $LOGFILE. Przykładowe zastosowania TRAP
                   to: usuwanie plików tymczasowych, logowanie własnych uzupełnień, itp. Zobacz także EXITCODE i
                   LOGABSTRACT.

       EXITCODE    Domyślne procmail zwraca zerowy kod  błędu  (oznaczający  powodzenie),  jeśli  udało  mu  się
                   poprawnie  dostarczyć  list  lub  gdy  zmienna  HOST  nie  była  ustawiona na nazwę bieżącego
                   komputera, a w linii poleceń nie podano kolejnych plików rc. W  przeciwnym  wypadku  zwracany
                   jest  błąd. Przed zakończeniem jednakże procmail sprawdza wartość tej zmiennej. Jeśli została
                   ustawiona na dodatnią wartość numeryczną, procmail użyje jej jako kodu wyjścia. Jeśli zmienna
                   ta jest ustawiona, lecz pusta, procmail ustawi kod wyjścia na wartość zwracaną przez  program
                   TRAP.  Jeśli  zmienna ta nie została ustawiona, procmail ustawi ją na krótko przed wywołaniem
                   programu TRAP.

       LASTFOLDER  Zmienna ta jest inicjowana przez  procmail  za  każdym  razem,  gdy  dostarcza  coś  jakiemuś
                   folderowi lub programowi. Zawsze zawiera  nazwę ostatniego foldera (lub programu), do którego
                   coś   dostarczano.   Jeśli  ostatnie  dostarczenie  obejmowało  łącznie  kilka  folderów,  to
                   $LASTFOLDER będzie zawierał nazwy wszystkich plików (będących de facto dowiązaniami twardymi)
                   jako listę rozdzieloną spacjami.

       MATCH       Zmienna ta jest inicjowana przez procmail za każdym razem, gdy ma wyciągnąć tekst z wyrażenia
                   regularnego. Będzie zawierać cały tekst odpowiadającego wyrażenia  regularnego  występującego
                   po żetonie "\/".

       SHIFT       Przypisanie  dodatniej  wartości  tej  zmiennej daje taki sam rezultat, jak komenda "shift" w
                   sh(1). Komenda ta jest najbardziej użyteczna do wyciągania  dodatkowych  argumentów  podanych
                   procmailowi działającemu jako filtr pocztowy.

       INCLUDERC   Nazywa  plik rc (względny w stosunku do bieżącego katalogu), który powinien być włączony jako
                   część bieżącego pliku rc. Dozwolone jest nieograniczone zagnieżdżanie (limitowane tylko przez
                   zasoby systemowe takie jak pamięć czy liczba dostępnych deskryptorów plików). Ponieważ nie są
                   są sprawdzane ani uprawnienia, ani właściciel pliku rc,  użytkownicy  INCLUDERC  powinni  się
                   upewnić, że tylko zaufani użytkownicy mają prawa do zapisu włączanego pliku rc i do katalogu,
                   w  którym  się ten plik znajduje. Przypisanie zmiennej INCLUDERC wartości w linii poleceń nie
                   ma żadnego efektu.

       SWITCHRC    Nazywa plik rc (względny w stosunku do bieżącego katalogu), na który powinno  się  przełączyć
                   przetwarzanie.  Jeśli  podany  plik  rc  nie  istnieje,  nie jest zwykłym plikiem ani plikiem
                   /dev/null, to zostanie wypisany błąd i będzie kontynuowane przetwarzanie bieżącego pliku  rc.
                   W  przeciwnym  razie  przetwarzanie  bieżącego  pliku  rc zostanie przerwane i rozpocznie się
                   przetwarzanie pliku podanego jako wartość  tej  zmiennej.  Jeśli  zmienna  SWITCHRC  zostanie
                   usunięta,  to procmail przerywa przetwarzanie bieżącego pliku, tak jakby plik ten się kończył
                   na linii usuwającej tę zmienną. Podobnie jak w przypadku INCLUDERC nie są są  sprawdzane  ani
                   uprawnienia, ani właściciel pliku rc, a przypisanie tej zmiennej wartości w linii poleceń nie
                   ma żadnego efektu.

       PROCMAIL_VERSION
                   Numer wersji działającego procmaila.

       PROCMAIL_OVERFLOW
                   Zmienna  ta  zostanie  ustawiona  na  niepustą  wartość, jeśli procmail wykryje przepełnienie
                   bufora. Patrz rozdział USTERKI poniżej po  opis  innych  działań  podejmowanych  po  wykryciu
                   przepełnienia bufora.

       COMSAT      Notyfikacja   comsat(8)/biff(1)  domyślnie  jest  włączona,  lecz  można  ją  wyłączyć  przez
                   ustawienie tej zmiennej na  "no".  Alternatywnie,  usługę  biff  można  dokonfigurować  przez
                   ustawienie zmiennej na "service@", "@hostname" lub "sevice@hostname". Wartością domyślną jest
                   biff@localhost.

       DROPPRIVS   Jeśli  jest  to  ustawione  na  "yes", procmail porzuci wszelkie uprawnienia (suid lub sgid),
                   jakie  może  mieć.  Opcja  ta  jest  użyteczna,  aby  zagwarantować,  że  dolna  część  pliku
                   /etc/procmailrc jest wywoływana w imieniu odbiorcy.

   Rozszerzone wyrażenia regularne
       Następujące  żetony  rozpoznawane  są  zarówno  przez wewnętrzny egrep procmaila, jak i przez standardowy
       egrep(1)  (proszę  być  świadomym  tego,  że  niektóre  implementacje  egrepa  zawierają   niestandardowe
       rozszerzenia,  w  szczególności  operator  powtarzania  {  nie jest obsługiwany przez wewnętrznego egrepa
       procmaila):

       ^         Początek linii.

       $         Koniec linii.

       .         Dowolny znak poza znakiem nowej linii.

       a*        Dowolna sekwencja składająca się z zera lub więcej znaków "a".

       a+        Dowolna sekwencja składająca się z jednego lub więcej znaków "a".

       a?        Ciąg pusty albo jeden znak "a".

       [^-a-d]   Dowolny znak, który nie jest kreską, znakiem "a", "b", "c" lub "d", lub znakiem nowej linii.

       de|abc    Albo sekwencja "de", albo "abc".

       (abc)*    Zero lub więcej sekwencji "abc".

       \.        Dopasowuje pojedynczą kropkę; należy użyć \ przed  którymkolwiek  ze  znaków  specjalnych,  aby
                 pozbyć  się  jego  specjalnego  znaczenia.  Patrz  także  opis  podstawień  zmiennych $\nazwa w
                 rozdziale USTERKI.

       Były to tylko przykłady, oczywiście można używać również bardziej złożonych kombinacji.

       Następujące znaczenia żetonów są rozszerzeniami procmaila:

       ^ lub $   Pasuje do znaku nowej linii (dla trafień wieloliniowych).

       ^^        Zakotwicza wyrażenie na samym początku obszaru przeszukiwania  lub  jeśli  napotkane  na  końcu
                 wyrażenia, na samym końcu obszaru przeszukiwań.

       \< lub \> Dopasowuje  znak  przed  słowem lub po nim. Są to ogólnie skróty dla "[^a-zA-Z0-9_]", lecz mogą
                 także dopasowywać znaki nowej linii. Ponieważ odpowiadają rzeczywistym znakom, nadają się tylko
                 do oddzielania słów, nie do oddzielania przestrzeni między słowami.

       \/        Dzieli wyrażenie na dwie części. Wszystko odpowiadające prawej  stronie  będzie  przypisane  do
                 zmiennej środowiskowej MATCH.

PRZYKŁADY

       Patrz strona podręcznika procmailex(5).

ZASTRZEŻENIA

       Kontynuowane  linie  w linii akcji, która określa program, muszą zawsze kończyć się odwrotnym ukośnikiem,
       nawet jeśli używana powłoka nie potrzebuje lub nie chce odwrotnego  ukośnika  do  wskazania  kontynuacji.
       Jest  tak  z  powodu  dwustopniowego  procesu  przetwarzania  (najpierw procmail, potem powłoka (lub nie,
       zależnie od SHELLMETAS)).

       Nie wstawia komentarzy w regule w liniach warunkowych  wyrażeń  regularnych,  linie  te  są  przekazywane
       wewnętrznemu  egrepowi  wprost  (z  wyjątkiem  odwrotnych ukośników kontynuacji znajdujących się na końcu
       linii).

       Początkowe białe spacje w kontynuowanych wyrażeniach regularnych są zazwyczaj ignorowane (więc linie mogą
       być wcięte), lecz nie jest tak w kontynuowanych wyrażeniach  warunkowych,  które  są  odczytywane  według
       reguł podstawiania sh(1) wewnątrz podwójnych cudzysłowów.

       Uwaga na deadlocki podczas wykonywania niezdrowych rzeczy jak przekazywanie poczty na swoje własne konto.
       Deadlocki można złamać przez właściwe użycie LOCKTIMEOUT.

       Wszelkie  domyślne  wartości,  których  procmail  używa dla zmiennych środowiskowych zawsze przeciążą te,
       które były wcześniej zdefiniowane. Aby naprawdę przeciążyć wartości domyślne, należy je albo  wstawić  do
       pliku rc, albo wypisać w linii poleceń jako argumenty.

       Plik  /etc/procmailrc  nie  może  zmienić  ustawienia  zmiennej  PATH  widzianej  później  przez pliki rc
       użytkowników  —  wartość  tej  zmiennej  jest  przywracana,  gdy  procmail  kończy  przetwarzanie   pliku
       /etc/procmailrc. W przyszłości należy się spodziewać ulepszenia tego zachowania, jednakże obecnie jedynym
       rozwiązaniem jest przekompilowanie procmaila z żądaną wartością tej zmiennej.

       Zmienne  środowiskowe,  ustawiane  wewnątrz  interpretowanej  przez  powłokę części akcji reguły "|", nie
       zachowają swoich wartości po zakończeniu reguły, gdyż są ustawiane w podpowłoce  procmaila.  Aby  upewnić
       się,  że wartość zostanie zachowana, należy dokonać przypisania przed początkowym znakiem "|" reguły, tak
       że może przechwycić stdout programu.

       Jeśli w regule dostarczającej podana zostanie tylko flaga "h" lub "b" i reguła ta zostanie dopasowana, to
       jeżeli nie użyto flagi "c", ciało listu lub (odpowiednio) jego nagłówek zostaną utracone.

ZOBACZ TAKŻE

       procmail(1), procmailsc(5), procmailex(5), sh(1), csh(1), mail(1), mailx(1), uucp(1), aliases(5),
       sendmail(8), egrep(1), regexp(5), grep(1), biff(1), comsat(8), lockfile(1), formail(1)

USTERKI

       Jedyne podstawienia zmiennych środowiskowych, które mogą być obsługiwane przez samego procmaila  są  typu
       $nazwa,  ${nazwa}, ${nazwa:-tekst}, ${nazwa:+tekst}, ${nazwa-tekst}, ${nazwa+tekst}, $\nazwa, $#, $n, $$,
       $?, $_, $- i $=; gdzie $\nazwa zostanie zastąpione przez nazwa z zacytowanymi wszystkimi znakami mającymi
       specjalne znaczenie w wyrażeniach regularnych; $_ będzie zastąpione nazwą bieżącego pliku  rc,  $-  przez
       $LASTFOLDER,  a  $=  będzie zawierać punktację (score) ostatniej reguły. Co więcej znaki spacji nigdy nie
       będą rozdzielać wyniku podstawiania $\nazwa. Gdy użyte  są  opcje  -a  lub  -m  to  "$@"  (cudzysłowy  są
       wymagane)  rozwinie  się  do  podanych  argumentów.  Jednakże "$@" będzie rozwijany tylko wtedy, gdy jest
       używany na liście  argumentów programu, i tylko jedno wystąpienie tej zmiennej będzie rozwijane.

       Niecytowanie  ekspansje  zmiennych  przeprowadzane  przez  procmail  są  zawsze  dzielone  na   spacjach,
       tabulatorach i znakach nowej linii; zmienna IFS nie jest wewnętrznie używana.

       Procmail nie wspiera rozwijania "~".

       Bufor  linii  o długości $LINEBUF jest używany podczas przetwarzania pliku rc; wszystkie ekspansje, które
       nie mieszczą się w tym limicie długości są obcinane i ustawiana  jest  zmienna  PROCMAIL_OVERFLOW.  Jeśli
       zbyt długa linia jest linią warunku lub akcji, to reguła zawierająca taki warunek lub akcję jest uznawana
       za  zakończoną  niepowodzeniem,  a procmail kontynuować będzie przetwarzanie kolejnych reguł. Jeśli linia
       taka występuje w przypisaniu zmiennej lub linii rozpoczynającej, to procmail przerwie przetwarzanie pliku
       rc.

       Jeśli globalny plik blokujący ma ścieżkę relatywną, a bieżący katalog nie jest taki sam, jak  wtedy,  gdy
       globalny  plik  blokujący  został  utworzony, to ten globalny plik blokujący nie zostanie usunięty, jeśli
       procmail zakończy w tym momencie działanie (tak więc: należy używać ścieżek  absolutnych  dla  globalnych
       plików blokujących).

       Jeśli  plik  rc ma ścieżkę względną, to kiedy ten plik jest otwierany po raz pierwszy, to MAILDIR zawiera
       ścieżkę względną. Jeśli w którymś momencie procmail zostanie poinstruowany, żeby się sklonował, a bieżący
       katalog roboczy się zmienił od czasu otwarcia pliku rc, to procmail nie będzie  w  stanie  się  sklonować
       (lekarstwo: używanie ścieżek bezwzględnych do odwołań do plików rc lub upewnienie się, że MAILDIR zawiera
       ścieżkę bezwzględną przed otwarciem pliku rc).

       Lokalny  plik  blokujący reguły, który zaznacza początek zagnieżdżonego bloku, nie działa tak, jak by się
       tego oczekiwało.

       Gdy przechwytuje się standardowe  wejście  z  reguły  do  zmiennej  środowiskowej,  to  zostanie  obcięty
       dokładnie jeden, kończący znak nowej linii.

       Niektóre  nieoptymalne  i  nieoczywiste wyrażenia regularne ustawiają niepoprawną wartość zmiennej MATCH.
       Takie wyrażenie regularne można poprawić, usuwając jeden lub więcej niepotrzebnych  operatorów  "*",  "+"
       lub "?" znajdujących się po lewej stronie tokena \/.

RÓŻNE

       Jeśli wyrażenie regularne zawiera "^TO_", to zostanie zastąpione przez "(^((Original-)?(Resent-)?(To|Cc
       |Bcc)|(X-Envelope|Apparently(-Resent)?)-To):(.*[^-a-zA-Z0-9_.])?)", co powinno złapać wszystkie
       specyfikacje celu zawierające określony adres.

       Jeśli wyrażenie regularne zawiera "^TO", to zostanie zastąpione przez "(^((Original-)?(Resent-)?(To|Cc
       |Bcc)|(X-Envelope|Apparently(-Resent)?)-To):(.*[^a-zA-Z])?)", co powinno złapać wszystkie specyfikacje
       celu zawierające określone słowo.

       Jeśli wyrażenie regularne zawiera "^FROM_DAEMON", to zostanie zastąpione przez "(^(Mailing-List:
       |Precedence:.*(junk|bulk|list)|To: Multiple recipients of |(((Resent-)?(From|Sender)|X-Envelope-From):
       |>?From )([^>]*[^(.%@a-z0-9])?(Post(ma?(st(e?r)?|n)|office)|(send)?Mail(er)?|daemon|m(mdf|ajordomo)
       |n?uucp|LIST(SERV|proc)|NETSERV|o(wner|ps)|r(e(quest|sponse)|oot)|b(ounce|bs\.smtp)|echo|mirror
       |s(erv(ices?|er)|mtp(error)?|ystem)|A(dmin(istrator)?|MMGR|utoanswer))(([^).!:a-z0-9][-_a-z0-9]*)?[%@>\t
       ][^<)]*(\(.*\).*)?)?$([^>]|$)))", co powinno złapać maile pochodzące od większości demonów (jak się
       podoba to wyrażenie regularne? :-)

       Jeśli wyrażenie regularne zawiera "^FROM_MAILER", to zostanie zastąpione przez "(^(((Resent-)?(From
       |Sender)|X-Envelope-From):|>?From )([^>]*[^(.%@a-z0-9])?(Post(ma(st(er)?|n)|office)|(send)?Mail(er)?
       |daemon|mmdf|n?uucp|ops|r(esponse|oot)|(bbs\.)?smtp(error)?|s(erv(ices?|er)|ystem)|A(dmin(istrator)?
       |MMGR))(([^).!:a-z0-9][-_a-z0-9]*)?[%@>\t ][^<)]*(\(.*\).*)?)?$([^>]|$))" (uproszczona wersja
       "^FROM_DAEMON"), co powinno złapać maile pochodzące od większości demonów pocztowych.

       Podczas  przypisywania  wartości  logicznych  zmiennym  takim jak VERBOSE, DELIVERED czy COMSAT, procmail
       przyjmuje jako prawdziwy napis zaczynający się od: cyfry różnej od zera, "on", "y", "t"  lub  "e".  Fałsz
       jest każdym napisem zaczynającym się od: cyfry zero, "off", "n", "f" lub "d".

       Jeśli  linia  akcji  reguły określa program, to pojedyncza para znaków odwrotny-ukośnik+nowa-linia w niej
       występująca zostanie przekształcona w nową linię, pod warunkiem, że  linia  nie  zawiera  innych  żadnych
       znaków.

       Silnik wyrażeń regularnych wbudowany w procmaila nie obsługuje nazwanych klas znaków (np. [:alnum:]).

UWAGI

       Ponieważ  niecytowane  początkowe białe spacje są ogólnie ignorowane w plikach rc, można zastosować takie
       wcięcia linii, jakie nam odpowiadają.

       Początkowy znak "|" w linii akcji  wskazującej  program  lub  filtr,  jest  obcinane  przed  sprawdzeniem
       $SHELLMETAS.

       Pliki włączane dyrektywą INCLUDERC zawierające tylko przypisania wartości zmiennym środowiskowym mogą być
       dzielone z sh(1).

       Nie  ma żadnych gwarancji, że bieżące zachowanie przypisań zmiennych INCLUDERC i SWITCHRC w linii poleceń
       nie zostanie zmienione. Zostało już raz zmienione w przeszłości i może być zmienione ponownie  lub  nawet
       usunięte w przyszłych wersjach.

       W celu naprawdę skomplikowanego przetwarzania można nawet rozważyć rekurencyjne wywoływanie procmaila.

       W bardzo starych wersjach procmaila zamiast ":0" rozpoczynającego regułę trzeba było używać ":n", gdzie n
       oznaczało liczbę warunków w regule.

AUTORZY

       Stephen R. van den Berg
              <srb@cuci.nl>
       Philip A. Guenther
              <guenther@sendmail.com>

TŁUMACZENIE

       Tłumaczenie   niniejszej   strony   podręcznika:  Przemek  Borys  <pborys@dione.ids.pl>,  Robert  Luberda
       <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje  o  warunkach  licencji  można  uzyskać
       zapoznając   się   z   GNU General Public License w wersji 3   lub  nowszej.  Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

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

BuGless                                            2001/08/04                                      PROCMAILRC(5)