Provided by: manpages-pl_0.5-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.22

       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ł  BŁĘDY  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 BŁĘDY.

       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)

BŁĘDY

       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'u' |proc)|NETSERV|o(wner|ps)|r(e(quest|sponse)|oot)|b(ounce'u'
       |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

       Autorami  polskiego  tłumaczenia niniejszej strony podręcznika man są: Przemek Borys (PTM)
       <pborys@dione.ids.pl> i Robert Luberda <robert@debian.org>.

       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ą   3.22
       oryginału.