NÉV
procmail - automatikus levélfeldolgozó/kezelő programÖSSZEGZÉS
procmail [-ptoY] [-f fromwhom] [ paraméter =érték|konfigállomány] ...LEÍRÁS
Rövid ismertető a súgó végén található a MEGJEGYZÉS részben. Alapesetben a procmail a .forward levélátirányításkor lép működésbe. Ettől eltérően, ha a rendszer üzemeltetője beállította, a levelezőprogrammal együtt is használható. Indításkor mindig az alapértékekkel tölt fel bizonyos környezeti változókat, a szabványos bemenetről olvassa be sorvége jelig a levelet, majd a fejléc alapján, ha nincs megadva semmilyen parancssori kapcsoló, akkor a $HOME/.procmailrc-ben található szűrést végzi el, ha szükséges. Ha nem található ilyen konfigurációs állomány, vagy feldolgozáskor hiba merül fel, akkor a levelet az alapértelmezett postafiókba (mailbox) továbbítja. Konfigurációs állomány (rcfile) és -p parancssori kapcsoló hiányában a procmail először a /etc/procmailrc állományt dolgozza fel (ha van ilyen). Az /etc/procmailrc állomány létrehozásakor figyelni kell arra, hogy a benne megadott műveletek root jogosultsággal hajtódnak végre, szemben a $HOME/.procmailrc -ben megadottakkal. Suid root vagy root jogokkal egy komplett levéltovábbító programként lehet használni a procmailt. Procmailt a levelek általános szűrésére is lehet használni, pl. a sendmailben speciális bejegyzéssel lehet futtatni. A konfigurációs állomány felépítéséről részletesen a procmailrc(5) súgóban lehet olvasni. A súlyozott értékelési módszerről részletes információ a procmailsc(5) súgóban található. Néhány konfigurációs példát pedig a procmailex(5) súgóban lehet megtalálni.Jelzések (Signals)
- TERMINATE (Befejezés)
- Idő előtt befejezi a
működést, a levelet nem dolgozza fel.
- HANGUP (Megszakítás)
- Idő előtt befejezi a feldolgozást, a
levelet visszaküldi (bounce the mail).
- INTERRUPT (Megszakítás)
- Idő előtt befejezi a feldolgozást, a
levelet visszaküldi (bounce the mail).
- QUIT (Kilépés)
- Idő előtt befejezi a feldolgozást, a
levelet törli (lose the mail).
- ALARM (Figyelmeztetés)
- Időtúllépést idéz
elő (ld. IDŐTÚLLÉPÉS).
- USR1
- Megfelel a VERBOSE=off-nak.
- USR2
- Megfelel a VERBOSE=on-nak.
KAPCSOLÓK
- -v
- A procmailt kiírja a
verziószámát, valamint a fordításkor
megadott beállításokat és kilép.
- -p
- Preserve any old environment. Normally procmail clears the
environment upon startup, except for the value of TZ. However, in any
case: any default values will override any preexisting environment
variables, i.e., procmail will not pay any attention to any predefined
environment variables, it will happily overwrite them with its own
defaults. For the list of environment variables that procmail will preset
see the procmailrc(5) man page. If both -p and -m are specified,
the list of preset environment variables shrinks to just: LOGNAME, HOME,
SHELL, USER_SHELL, ORGMAIL and MAILDIR.
- -t
- Csökkentett feldolgozás, pl. ha a procmail
nem tudja a szűrési feltételben megadott
parancs(oka)t végrehajtani, akkor nem törli a levelet, hanem
meghagyja későbbi feldolgozásra.
- -f fromwhom
- A procmail a `From ' sort a fromwhom -ban megadottra
cseréli, ezzel eléri, hogy mintha az lett volna az eredeti
feladó (az -f kapcsoló helyett használható az
-r kapcsoló is). Ha fromwhom -nak csak egy `-' jelet adunk
meg, akkor a procmail mindössze a `From ' sorban
található idő értékét
frissíti (ha nincs ilyen rész, akkor létrehozza azt).
- -o
- Megakadályozza, hogy bárki
módosíthassa a `From ' sor tartalmát.
- -Y
- A hagyományos Berkeley postafiók
formátumot használja, figyelmen kívül hagyva a
Content-Length: mezőket.
- -a érték
- This will set $1 to be equal to argument. Each
succeeding -a argument will set the next number variable
($2, $3, etc). It can be used to pass meta information along to procmail.
This is typically done by passing along the $@x information from the
sendmail mailer rule.
- -d címzett ...
- Közvetlen
levéltovábbítás. Ebben az esetben a
címzettben megadott helyi felhasználókhoz
lesznek továbbítva a levelek. Ez természetesen csak
akkor lehetséges, ha a procmail root jogokkal (vagy ha már a
címzett euid és egid jogaival) fut. Ebben az esetben a
-p kapcsolót nem lehet használni.
- -m
- A procmail egy általános
levélfeldolgozóként fog működni. Ebben
az esetben egy konfigurációs állományt is meg
kell adni a parancssorban. A konfigurációs
állomány neve után bármilyen kapcsoló
megadható. Ha a konfigfájl az /etc/procmailrcs/
résszel kezdődő abszolút elérési
úttal lett megadva (vagy ennek alkönyvtárában
van), akkor a megadott állomány vagy szimbolikus
kötés (symbolic link) tulajdonjogával fog futni,
hacsak nem az biztonsági problémát nem okozna. A
kapcsoló használatáról a súgó
PÉLDÁK részében további
információ található.
ÉRTÉKEK
Any arguments containing an '=' are considered to be environment variable assignments, they will all be evaluated after the default values have been assigned and before the first rcfile is opened. Minden más értéket konfigfájl megadásának minősít, legyen az abszolút vagy relatív útvonal hivatkozás (pl. ./) A relatív útvonalak esetén a kiindulási könyvtárnak a $HOME-ot veszi, hacsak nem az -m kapcsolót nem használtuk. Ebben az esetben az aktuális könyvtár a relatív hivatkozás kiindulási pontja. A procmail mindig az első megadott értékkel próbál meg dolgozni, de ha az nem ad meg alkalmas állománybejegyzést, akkor sorra veszi a többi értéket is, amíg szükséges. Konfigurációs fájl megadása nélkül a $HOME/.procmailrc állományt próbálja megnyitni. Ha ez nem lehetséges, akkor a környezeti változók és a parancssorban megadott értékek szerint fog futni.PÉLDÁK
Szűrési feltételekre minta példákat a procmailex(5) súgóban lehet találni. Egy egyszerű példa ezen súgó MEGJEGYZÉS részében is található. A következőkben a rendszer adminisztrátorok és a sendmail.cf szerkesztésében járatosak számára következnek hasznos tanácsok, akit nem érdekel az nyugodtan átugorhatja ezt a részt. Az -m kapcsolót leginkább akkor használhatjuk, ha a procmailt a sendmail.cf állomány egyik beállításaként hívjuk meg. Ehhez szükséges a sendmail.cf fájlban egy külön procmail-levélküldő részt megadni (hasonlót, mint a valószínűleg már létező `helyi' levélküldőhöz (local mailer)). Ehhez a következőt célszerű a fájlban elhelyezni.Mprocmail, P=/usr/bin/procmail, F=mSDFMhun, S=11, R=21, A=procmail -m $h $g $u
Ezzel lehetséges különböző szűrési módokat elvégezni (hasonlókat, mint a 0-val kezdődően beállítottakkal) a procmail-el (a feltételben megadott tabulátorok fontosak, mind a feltétel előtt, mind a megjegyzések előtt):
R$*<@some.where>$* $#procmail $@/etc/procmailrcs/valami.rc $:[email protected]$2 R$*<@$*.procmail>$* $1<@$2>$3 szűrt levelek továbbengedése
Az /etc/procmailrcs/valami.rc tartalma pedig:
SENDER = "<$1>" # fix for empty sender addresses SHIFT = 1 # remove it from $@ :0 # levélszemét (junk mail) szűrése * ^Subject:.*junk /dev/null :0 w # pass along all other mail ! -oi -f "$SENDER" "$@"
Vigyázzunk arra, hogy csak olyan levelet küldjünk el, amely az elsőként megadott feltételnek NEM felel meg, mert különben a levél nem jutna el a címzetthez.
FÁJLOK
- /etc/passwd
- to set the recipient's LOGNAME, HOME and USER_SHELL
variable defaults
- /var/mail/$LOGNAME
- rendszerszintű postafiók; a
rendszerszintű postafiók és a könyvtár
létre hozásra kerül a procmail
indításakor, ha valamelyik nem létezne
- /etc/procmailrc
- rendszerszintű konfigurációs
állomány
- /etc/procmailrcs/
- speciális könyvtár az
eltérő jogosultságú
konfigurációs állományoknak
- $HOME/.procmailrc
- alapértelmezett konfigfájl
- /var/mail/$LOGNAME.lock
- záróállomány a
felhasználó rendszerszintű
postafiókjához (a procmail csak akkor használja, ha a
$DEFAULT értéke /var/mail/$LOGNAME és a procmail a
$DEFAULT-ba továbbítja a leveleket)
- /usr/sbin/sendmail
- alapértelmezett
levéltovábbító
- _????`hostname`
- a procmail által átmenetileg
létrehozott nullahosszúságú
állomány
LÁSD MÉG
procmailrc(5), procmailsc(5), procmailex(5), sh(1), csh(1), mail(1), mailx(1), uucp(1), aliases(5), sendmail(8), egrep(1), grep(1), biff(1), comsat(8), lockfile(1), formail(1), cron(1)DIAGNOSZTIKA
- (Fordító megjegyzése: A hibaüzenetek angolul olvashatók azok könnyebb
- azonosítása végett, de alattuk
szögletes [] zárójelben magyar
fordításuk is megtalálható.) Autoforwarding
mailbox found [Automatikus levéltovábbküldés a
postafiókból] [Automatikus
levéltovábbküldés a
postafiókból]A rendszeren található az adott
suid és sgid-es postafiók, a procmail EX_NOUSER
üzenettel leáll, a levelet nem továbbítja.
- Bad substitution of "x"
- ["x" hibás megadása] A
környezeti változó hibásan lett megadva.
- Closing brace unexpected
- [Hiányzó záró
idézőjel] Nem található nyitó
idézőjel, az idézőjelek közötti
szöveg nem azonosítható.
- Conflicting options
- [Ellentétes kapcsolók] Nem mindegyik
kapcsolót lehet másikkal egyidejűleg megadni.
- Conflicting x suppressed
- [Ellentétes x figyelmen kívül
hagyása] A szűrésnél megadottak
egyikével ütközik az x.
- Couldn't create "x"
- [Nem hozható létre az "x"] A
postafiók a rendszeren nem hozható létre.
- Couldn't create maildir part "x"
- The maildir folder "x" is missing one or more
required subdirectories and procmail could not create them.
- Couldn't create or rename temp file "x"
- An error occurred in the mechanics of delivering to the
directory folder "x".
- Couldn't determine implicit lockfile from "x"
- [Nem határozható meg az "x"
záróállomány közvetlenül]
Hiányoznak a `>>' átirányítók,
helyettük a `$LOCKEXT' záróállomány
használata történik.
- Couldn't read "x"
- Procmail was unable to open an rcfile or it was not a
regular file, or procmail couldn't open an MH directory to find the
highest numbered file.
- Couldn't unlock "x"
- [Hiba "x" zárolásának
megszüntetésekor] A záróállomány
vagy le lett törölve, vagy a jogosultságok a
törlésre meg lettek szüntetve.
- Deadlock attempted on "x"
- [Létező zárolás
"x"-en] A szűrésnél megadott
záróállomány egy jelenleg
működő záróállománnyal
azonos nevű.
- Denying special privileges for "x"
- [Különleges jogosultságok figyelmen
kívül hagyása "x"-en] A konfigfájl
jogaival a procmail biztonsági okokból nem fog futni
(okozhatja azt pl. a -p kapcsoló vagy adott
környezeti változó); a jogok a
működéséhez rosszul lettek megadva.
- Descriptor "x" was not open
- As procmail was started, stdin, stdout or stderr was not
connected (possibly an attempt to subvert security)
- Enforcing stricter permissions on "x"
- ["x" jogosultságai nem elég
biztonságosak] A felhasználó rendszerszintű
postafiókja nem rendelkezik a megfelelő
jogosultságokkal, a procmail kijavította a hibát.
- Error while writing to "x"
- [Hiba az "x" írásakor] Nem
létező alkönyvtár, vagy írási
jogosultság hiánya, esetleg megtelt a lemez.
- Exceeded LINEBUF
- [LINEBUF túllépése] Buffer overflow
detected, LINEBUF was too small, PROCMAIL_OVERFLOW has been set.
- MAILDIR is not an absolute path
-
- MAILDIR path too long
-
- ORGMAIL is not an absolute path
-
- ORGMAIL path too long
-
- default rcfile is not an absolute path
-
- default rcfile path too long
- The specified item's full path, when expanded, was longer
than LINEBUF or didn't start with a file separator.
- Excessive output quenched from "x"
- [Túl sok kimenet "x"-nél] The
backquoted expression "x" tried to produce too much output for
the current LINEBUF; the rest was discarded and PROCMAIL_OVERFLOW has been
set.
- Extraneous x ignored
- [Felesleges x] The action line or other flags on this
recipe make x meaningless.
- Failed forking "x"
- [Hiba "x" ágaztatásakor] A
folyamattábla (process table) megtelt (és a NORESRETRY nem
lett felhasználva).
- Failed to execute "x"
- [Hiba "x" futtatásakor] A program nem
található, vagy nem futtatható.
- Forced unlock denied on "x"
- [Nem lehet a zárolást az "x"-en
erőszakkal sem megszüntetni] Írási
jogosultság hiánya az "x"
záróállományt tartalmazó
könyvtárra, vagy egyszerre több procmail
próbálta megszüntetni a zárolást.
- Forcing lock on "x"
- ["x" zárolása erőszakkal] Az
"x" záróállomány
erőszakkal lett törölve
időtúllépés miatt (ld.
IDŐTÚLLÉPÉS részt).
- Incomplete recipe
- [Hiányos/nem teljes szűrési
feltétel] A szűrési feltétel EOF-al
végződik.
- Insufficient privileges
- [Nem megfelelő jogosultságok] A procmail
működéséhez vagy root, vagy a
szükséges (e)uid és (e)gid jogok
szükségesek. A levelet nem lehet feldolgozni.
- Invalid regexp "x"
- [Érvénytelen "x" kifejezés]
Hibás "x" kifejezés
(legvalószínűbb hogy hiányzó vagy
túl sok idézőjel van).
- Kernel-lock failed
- [Hiba a kernel-zárolásnál] A kernel
által támogatott zárolások
meghívásakor hiba lépett fel (általában
OP hibát jelent ez), a procmail a hibát figyelmen
kívül hagyva folytatja
működését.
- Kernel-unlock failed
- [Hiba a kernel-zárolás
megszüntetésekor] Ld. fent.
- Lock failure on "x"
- [Hiba az "x" zárolásakor] Nem
megfelelő vagy nagyon furcsa
záróállomány-név lett megadva,
vagy hiányoznak a szükséges jogok, esetleg a
záróállományt tartalmazó
alkönyvtár.
- Lost "x"
- [Hiányzó "x"] A procmail
másolatot indított volna magáról, de nem
találja a szükséges "x"
konfigurációs állományt (az vagy át
lett helyezve, vagy a relatív útvonal megadása
esetén könyvtárváltás
történt).
- Missing action
- The current recipe was found to be incomplete.
- Missing closing brace
- [Hiányzó záró
zárójel] A kifejezésből hiányzik a
záró zárójel.
- Missing name
- [Hiányzó név] Az -f kapcsolóhoz
nem lett megadva a szükséges érték.
- Missing argument
- [Hiányzó érték] Az -a
kapcsoló után nem lett érték megadva.
- Missing rcfile
- [Hiányzó konfigfájl] Az -m
kapcsoló után a konfigurációs
állomány helyét kell megadni.
- Missing recipient
- [Hiányzó címzett] A -d
kapcsolóval vagy másik felhasználó neve alatt
lett elindítva a procmail, ekkor egy vagy több
címzettet kell felsorolni a parancssorban.
- No space left to finish writing "x"
- [Nincs elég üres hely az "x"
írásakor] Az "x"-et tartalmazó
fájlrendszeren nincs elég üres hely a
továbbküldéshez.
- Out of memory
- [Nincs elég memória] A lapozó (swap
space) teljes mértékben fel lett használva (és
a NORESRETRY nem lett felhasználva).
- Processing continued
- [Feldolgozás folytatása] A parancssorban
megadott ismeretlen kapcsoló figyelmen kívül lett
hagyva, a feldolgozás tovább folyik.
- Program failure (nnn) of "x"
- ["x" program hiba, hibakód (nnn)] A
procmail-lel meghívott program az EXIT_SUCCESS (=0) helyett (nnn)
értékkel tért vissza. Negatív nnn a program
befejezését előidéző szignál
értékét jelenti.
- Quota exceeded while writing "x"
- [Kvóta túllépése "x"
írásakor] Az "x"-et tartalmazó
fájlrendszeren a címzettnek megadott kvóta túl
lett lépve, az üzenetet nem lehet továbbítani.
- Renaming bogus "x" into "x"
- [Hibás "x" átnevezése
"x"-re] A címzett postafiókjának
hibáját a procmail kijavította.
- Rescue of unfiltered data succeeded/failed
- [Sikerült/nem sikerült
visszaállítani a nem vizsgált adatot] Sikertelen
szűrés esetén a procmail az eredeti
szövegből próbál meg újra kiindulni.
- Skipped: "x"
- ["x" kihagyása] A
konfigállományban az "x" figyelmen
kívül hagyva (szintaxis hiba).
- Suspicious rcfile "x"
- [Gyanú "x" konfigurációs
fájl] The owner of the rcfile was not the recipient or root, the
file was world writable, or the directory that contained it was world
writable, or this was the default rcfile ($HOME/.procmailrc) and either it
was group writable or the directory that contained it was group writable
(the rcfile was not used).
- Terminating prematurely whilst waiting for ...
- [Kilépés ...-ra várva] A procmail
kilépett a ... várása közben.
- Timeout, terminating "x"
- [Időtúllépés, "x"
bezárása] "x" programnál vagy
szűrőnél időtúllépés
következett be.
- Timeout, was waiting for "x"
- [Időtúllépés az
"x"-re várás közben] "x" program,
szűrő vagy fájl esetén
időtúllépés történt. Ha az egy
program vagy szűrő volt, akkor
valószínűleg már befejezte
működését.
- Truncated file to former size
- [Állomány eredeti méretének
visszaállítása] A fájlt nem lehetett sikeresen
továbbküldeni, így vissza lett állítva
eredeti állapotára.
- Truncating "x" and retrying lock
- ["x" elvetése és
zárolás megszüntetése] "x"
névvel nem található állomány, vagy az
állomány üres.
- Unable to treat as directory "x"
- Either the suffix on "x" would indicate that it
should be an MH or maildir folder, or it was listed as an second folder
into which to link, but it already exists and is not a directory.
- Unexpected EOL
- [Nem várt EOL] Hiányzó
záró aposztróf, vagy EOF.
- Unknown user "x"
- [Ismeretlen "x" felhasználó] A
megadott címzett nem rendelkezik uid-val.
RÉSZLETES HIBAELLENŐRZÉS
Részletes hibakereséshez a VERBOSE változót kell ki/bekapcsolni.- [pid] idő & dátum
- A procmail pid-je és működési
ideje. Minden olyan esetben létrehozásra kerül,
amikor a procmail naplózza az üzeneteket és
legalább 1 másodperc eltelt a működési
időből.
- Acquiring kernel-lock
- [Kernel-zárolás meghívása] A
procmail a legutoljára megnyitott állományt
(descriptor) próbálja meg kernel-zárolni.
- Assigning "x"
- ["x" megadása] Környezeti
változó megadása.
- Assuming identity of the recipient, VERBOSE=off
- [A címzett elfogadása, VERBOSE=off] Jogok (ha
vannak) figyelmen kívül hagyása, részletes
kijelezés kikapcsolása.
- Bypassed locking "x"
- [Hozzáférés "x"-hez annak
zárolása nélkül] A leveleket tartalmazó
könyvtár nem hozzáférhető a procmail
számára, kizárólag
kernel-zárolással érhető el.
- Executing "x"
- ["x" futtatása] "x" program
elindítása. Ha közvetlenül a
procmailből (nem egy átmeneti burokból) futtatjuk,
akkor a procmail az értékeket vesszővel
elválasztva írja ki.
- HOST mismatched "x"
- [Eltérés "x" és HOST
között] A rendszert "x"-nek hívják,
azonban a HOST-ban más van megadva.
- Locking "x"
- ["x" zárolása] "x"
záróállomány létrehozása.
- Linking to "x"
- [Hivatkozás "x"-re]
Különböző mappák közötti
keménykötés (hardlink) létrehozva.
- Match on "x"
- [Azonosság "x"-el] A vizsgált
feltétel igaz.
- Matched "x"
- [Megadott "x"] Az "x"
értéke hozzá lett rendelve a MATCH-hoz.
- No match on "x"
- [Nem azonos "x"-el] A vizsgált
feltétel nem igaz, szűrés átugorva.
- Non-zero exitcode (nnn) by "x"
- Program that was started by procmail as a condition or as
the action of a recipe with the `W' flag returned nnn instead of
EXIT_SUCCESS (=0); the usage indicates that this is not an entirely
unexpected condition.
- Notified comsat: "$LOGNAME@offset:file"
- [Comsat megjegyzés:
"$LOGNAME@hely:fájl"] Comsat/biff üzenet
küldése levél érkezéséről
a $LOGNAME felhasználónak a "fájlba" a
megadott "helyre".
- Opening "x"
- ["x" megnyitása] "x"
állomány megnyitása
hozzáfűzésre.
- Rcfile: "x"
- [Konfigurációs állomány:
"x"] A konfigurációs állomány neve
"x".
- Reiterating kernel-lock
- [Visszatérő kernel-zárolás]
Különböző zárolási
módszerek közül az egyik nem volt sikeres. A procmail
addig próbálja a zárolást újra,
amíg mindegyik sikeres nem lesz.
- Score: added newtotal "x"
- [Pont hozzáadva, összesen: "x"] A
megadott pontokat hozzáadja a már
meglévőkhöz, majd kiírja az összeget.
- Unlocking "x"
- ["x" zárolásának
megszüntetése] "x"
záróállomány
eltávolítása.
FIGYELMEZTETÉSEK
You should create a shell script that uses lockfile(1) before invoking your mail shell on any mailbox file other than the system mailbox (unless of course, your mail shell uses the same lockfiles (local or global) you specified in your rcfile). Ha valamilyen okból a procmail programot idő előtt be szeretnénk zárni, akkor először a kill parancsot (de nem a 'kill -9'-et, az eltérő értékű JELZÉS miatt) használjuk, különben néhány záróállomány nem kerül törlésre. Óvatosan használjuk a -t kapcsolót, mivel ebben az esetben a procmail hamar megtöltheti a postafiókot továbbküldési hiba (pl. rosszul beállított, hibás konfigurációs állomány) esetén. Ez gondot okozhat mind a postmaster-nél és a helyi felhasználóknál. Az /etc/procmailrc állomány root jogokkal is futhat, így jól gondoljuk meg, hogy mit helyezünk el benne, mit hajtatunk végre vele. A SHELL a címzettével azonos, így ha szükséges a burok elindítása, akkor a hibalehetőségek csökkentéséért először valamilyen jól működő értékre állítsuk be azt. Lásd : DROPPRIVS kapcsolók. Ügyeljünk arra, hogy az /etc/procmailrcs/ állományok tulajdonosát meg lehet változtatni chown(1) -val root-ra vagy bármi másra. Biztonsági szempontból ezért célszerű, hogy ebbe a könyvtárba csak a root tudjon belépni Procmail is not the proper tool for sharing one mailbox among many users, such as when you have one POP account for all mail to your domain. It can be done if you manage to configure your MTA to add some headers with the envelope recipient data in order to tell Procmail who a message is for, but this is usually not the right thing to do. Perhaps you want to investigate if your MTA offers `virtual user tables', or check out the `multidrop' facility of Fetchmail.HIBÁK
A záróállomány erőszakkal történő törlése után a procmail a $SUSPEND-ben megadott másodpercig várakozik, mielőtt egy új záróállományt hoz létre, így egy másik program amely törölné a régi záróállományt nem fogja az újonnan létrehozott záróállományt törölni. A procmail hagyományos BEZÁR (TERMINATE) jelzéssel szakítja meg a nem-megfelelően működő szűrőket, azonban nem figyeli azok válaszát a jelzésre, és mindössze a szűrőnek küldi a jelzést el, a gyerek-folyamatoknak (filter's children). A folytatott Content-Length: mezőket nem kezeli megfelelően a procmail. The embedded newlines in a continued header should be skipped when matching instead of being treated as a single space as they are now.EGYÉB
Ha a levél fejlécében Content-Length: mező van, valamint az -Y kapcsoló nincs megadva, a procmail a mezőt figyelmen kívül hagyja. A mezőszélességét a procmail nem változtatja meg. Ha hiányzik a Content-Length: mező és az -Y kapcsoló meg lett adva, valamint a procmail a hagyományos postafiókba továbbítja a levelet, akkor a levél törzsében a postmarks-hoz hasonló sorok elé egy `>' jelet szúr be (a furcsa fejlécek megkülönböztetéséhez). Az ajánlott forma az ilyen postmark-ok kereséséhez az alábbi:`\nFrom '
If the destination name used in explicit delivery mode is not in /etc/passwd, procmail will proceed as if explicit delivery mode was not in effect. If not in explicit delivery mode and should the uid procmail is running under, have no corresponding /etc/passwd entry, then HOME will default to /, LOGNAME will default to #uid, USER_SHELL will default to /bin/sh, and ORGMAIL will default to /tmp/dead.letter. Közvetlen továbbításánál a hiányzó `From ' mezőt a procmail automatikusan létrehozza, ha már létezik, akkor azt nem változtatja meg. Ha a procmail nem a következő felhasználói vagy csoport nevek valamelyikével fut: root, daemon, uucp, mail, x400, network, list, slist, lists vagy news, és meg lett adva a `From ' mező újragenerálása akkor az `>From' -ként lesz létrehozva, ezzel segítve a levelek megkülönböztetését. For security reasons procmail will only use an absolute or $HOME-relative rcfile if it is owned by the recipient or root, not world writable, and the directory it is contained in is not world writable. The $HOME/.procmailrc file has the additional constraint of not being group-writable or in a group-writable directory. Ha különböző hibák fordulnak elő a /var/mail/$LOGNAME postafióknál (pl. nem a címzett annak a tulajdonosa, nem írható, szimbólikus vagy kemény kötés) ,akkor a procmail hozzáféréskor megpróbálja `BOGUS.$LOGNAME'-re azt átnevezni, és külön node-számmal ellátni. Ha ez nem lehetséges, akkor az ORGMAIL változó nem kap megfelelő értéket, ezáltal még megfelelő konfigurációs állomány esetén sem történik levélfeldolgozás. Létező, de hibás jogosultságokkal rendelkező /var/mail/$LOGNAME postafiók esetén a procmail megpróbálja a hibát kijavítani. Ha nem szeretnénk, hogy a procmail kijavítsa az ilyen hibát, akkor u+x jelzést kell az állományra helyezni. When delivering to directories, MH folders, or maildir folders, you don't need to use lockfiles to prevent several concurrently running procmail programs from messing up. MH-fiókba kicsit lassabban történik , mint egy sima könyvtárba vagy levélmappába a levéltovábbítás. A procmailnak ekkor meg kell keresni a legnagyobb sorszámú levelet a fiókban (a többi esetben nem kell ilyet elvégezni). Általános hibát a procmail az EX_CANTCREAT -el jelzi, kivéve ha a -t kapcsoló meg lett adva. Ebben az esetben EX_TEMPFAIL -el történik a hibajelzés. A fejlécek pontosabb kereséséhez (egrepping) a procmail összefűzi azokat a levélen belül. Továbbításkor azonban a fejléceket visszaállítja eredeti állapotukba. Ha a procmailt nem `procmail'-el kezdődő programnév alatt indítjuk el (pl. egy másiknévvel hivatkozunk rá kötéssel), akkor közvetlen módban fog működni. Ekkor/ehhez viszont a parancssorban a címzetteket fel kell sorolni (úgy mint a -d kapcsoló esetén). udp-vel történik a comsat/biff értesítés. A naplóállomány (logfile) lezárása után értesíti a programokat az új levélről a procmail. Az értesítés az alábbi részletes formátumban (vagy valami hasonlóban) történik:
$LOGNAME@üzenet_helye_a_postafiókban :postafiók_abszolút_útvonala
Whenever procmail itself opens a file to deliver to, it consistently uses the following kernel locking strategies : fcntl(2). A procmail képes NFS-en és 8-bittel működni.
MEGJEGYZÉS
A -h vagy -? kapcsolókkal indított procmail a parancssori súgót és a lehetséges szűrőfeltételek rövid leírását jeleníti meg. Kezdőknek a Nancy McGough <[email protected]> által összeállított levélszűrőkről (így a procmailről is) szóló GYIK-ot (FAQ) ajánljuk. Beszerezhető a [email protected] címre küldöttsend usenet/news.answers/mail/filtering-faq tartalmú levéllel.
If procmail is not installed globally as the default mail delivery agent (ask your system administrator), you have to make sure it is invoked when your mail arrives. In this case your $HOME/.forward (beware, it has to be world readable) file should contain the line below. Be sure to include the single and double quotes, and unless you know your site to be running smrsh (the SendMail Restricted SHell), it must be an absolute path.
" |exec /usr/bin/procmail"Some mailers (notably exim) do not currently accept the above syntax. In such case use this instead:
|/usr/bin/procmailA procmailt egy már létező postafiók szűrésére is fel lehet használni. Ez akkor lehet hasznos, ha a $HOME/.forward -ot nem lehet/nem tudjuk használni (ekkor a következő szkriptet célszerű bizonyos időközönként elindítatni a cron(1) -al vagy a levelek olvasásának megkezdése előtt):
#!/bin/sh ORGMAIL=/var/mail/$LOGNAME if cd $HOME && test -s $ORGMAIL && lockfile -r0 -l1024 .newmail.lock 2>/dev/null then trap "rm -f .newmail.lock" 1 2 3 13 15 umask 077 lockfile -l1024 -ml cat $ORGMAIL >>.newmail && cat /dev/null >$ORGMAIL lockfile -mu formail -s procmail <.newmail && rm -f .newmail rm -f .newmail.lock fi exit 0
Egy rövid $HOME/.procmailrc mintapélda:
PATH=/bin:/usr/bin:/usr/bin MAILDIR=$HOME/Mail #ellenőrizzük, hogy létezik-e DEFAULT=$MAILDIR/mbox #nem kötelező megadni LOGFILE=$MAILDIR/from #ajánlott megadni :0: * ^From.*miki from_miki :0 * ^Subject:.*Flame /dev/nullA procmailex(5) súgóban további példák találhatók.
SOURCE
This program is part of the procmail mail-processing-package (v3.24) available at http://www.procmail.org/ or ftp.procmail.org in pub/procmail/.MAILINGLIST
A procmail csomaggal kapcsolatos kérdéseidet/észrevételeidet a<[email protected]>
címen működő levelezőlistán teheted fel.
<[email protected]>
címre kell írni a feliratkozáshoz.
Ha érdekelnek a legfrissebb verziók, hibajavítások akkor a következő listára kell feliratkoznod:
(a lista csak olvasható).
SZERZŐI
Stephen R. van den BergFORDÍTÁS
A kézikönyv magyar fordítását a Vizi Szilárd <[email protected]> készítette. Ez a fordítás ingyenes dokumentáció; lásd a GNU General Public License 3 Feltételezzük, hogy NEM FELELŐSSÉG. Ha hibát talál a kézikönyv oldal fordításában, küldje el a e-mail cím: TODO.BuGless |