|
|
FC5 ·
FC6 ·
MDV20070 ·
MDV20071 ·
MDV20080 ·
MDV20081 ·
MDV20090 ·
RH9 ·
RHEL4 ·
RHEL5 ·
SLES9 ·
SLES10 ·
SUSE101 ·
SUSE102 ·
SUSE103 ·
SUSE110 ·
SUSE111 ·
centos4 ·
centos5 ·
debian-etch ·
debian-sarge ·
debian-unstable ·
f7 ·
f8 ·
f9 ·
f10 ·
ubuntu606 ·
ubuntu610 ·
ubuntu704 ·
ubuntu710 ·
ubuntu804 ·
ubuntu810
PROCMAIL
NÉV
|
procmail − automatikus levélfeldolgozó/kezelő program
|
VÁZLAT
|
procmail [−ptoY] [−f fromwhom]
|
|
[paraméter=érték|konfigállomány] ...
|
|
procmail [−toY] [−f fromwhom] [−a érték]
|
|
procmail [−ptY] −m [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 pontozási módszerről a procmailsc(5) súgó ad bővebb felvilágosítást.
Néhány konfigurációs példát pedig a procmailex(5) súgóban lehet megtalálni.
|
|
Idő előtt befejezi a működést, a levelet nem dolgozza fel.
|
|
Idő előtt befejezi a feldolgozást, a levelet visszaküldi (bounce the mail).
|
|
Idő előtt befejezi a feldolgozást, a levelet visszaküldi (bounce the mail).
|
|
Idő előtt befejezi a feldolgozást, a levelet törli (lose the mail).
|
|
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
|
|
Megtartja az eredeti környezeti változókat. Alapesetben a procmail indulásakor a TZ változó kivételével törli a beállított környezeti változókat. Máshogy mondva a procmail a már beállított környezeti változókat saját értékeivel felülírja indulásakor. A módosításra kerülő környezeti változókról bővebben a procmailrc(5) súgójában lehet olvasni. Ha a −p és −m kapcsolókat együtt használjuk, akkor csak a következő környezeti változókat írja felül a procmail: LOGNAME, HOME, SHELL, ORGMAIL és 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.
|
|
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 $1 változó értékét az értékben megadottra állítja be. A procmail működése alatt bizonyos értékek tárolására, használatára alkalmazható. Ugyanígy történik a $@x -en keresztül információátadás a sendmail programból.
|
|
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
|
Minden és az alapértékek beállítása után, de még a konfigurációs állomány megnyitása előtt kiértékeli azokat.
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 $:$1 AT vala DOT hol DOT procmail$2 R$*<@$*.procmail>$* $1<@$2>$3 szűrt levelek továbbengedése
Az /etc/procmailrcs/valami.rc tartalma pedig:
:0 # levélszemét (junk mail) szűrése * ^Subject:.*junk /dev/null
:0 # többi levél továbbengedése ! −oi −f "$@"
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.
|
ÁLLOMÁNYOK
|
/etc/passwd
|
|
a címzettek LOGNAME, HOME és SHELL változóinak megállapításához
|
|
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/spool/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/spool/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), binmail(1), uucp(1), aliases(5), sendmail(8), egrep(1), grep(1), biff(1), comsat(8), lockfile(1), formail(1), cron(1)
|
DIAGNOSZTIKA, HIBAELLENŐRZÉS
|
(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]
|
|
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.
|
|
A környezeti változó hibásan lett megadva.
|
|
Nem található nyitó idézőjel, az idézőjelek közötti szöveg nem azonosítható.
|
|
Nem mindegyik kapcsolót lehet másikkal egyidejűleg megadni.
|
|
[Ellentétes x figyelmen kívül hagyása]
|
|
A szűrésnél megadottak egyikével ütközik az x.
|
|
[Nem hozható létre az "x"]
|
|
A postafiók a rendszeren nem hozható létre.
|
|
Couldn’t create maildir part "x"
|
|
[A postafiók könyvtárának "x" része nem hozható létre]
|
|
A postafiókot tartalmazó könyvtár "x" része nem létezik, a procmail nem tudja létrehozni.
|
|
Couldn’t create or rename temp file "x"
|
|
[Az "x" átmeneti állomány nem hozható létre, vagy nem nevezhető át]
|
|
Az "x" könyvtárba történő továbbításkor hiba merült fel.
|
|
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.
|
|
A procmail nem tudja megnyitni a konfigurációs állományt, vagy az nem a megfelelő formátumban van, vagy a procmail nem tudta MH könyvtár esetén a legnagyobb sorszámú levelet megtalálni.
|
|
[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"
|
|
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
|
|
[Az azonosító "x"-et nem lehet megnyitni]
|
|
A procmail indításakor a stdin, stdout vagy stderr -hoz nem tudott kapcsolódni (valószínű biztonsági beállítások következtében).
|
|
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"
|
|
Nem létező alkönyvtár, vagy írási jogosultság hiánya, esetleg megtelt a lemez.
|
|
Puffer túlcsordulás. A LINEBUF értéke túl kicsi, a PROCMAIL_OVERFLOW be lett állítva.
|
|
Excessive output quenched from "x"
|
|
[Túl sok kimenet "x"-nél]
|
|
Az "x" program vagy szűrő túl sok kimenetet hozott létre az aktív LINEBUF-ba, a felesleges kimenet figyelmen kívül lett hagyva.
|
|
A szűrési feltételben lévő x felesleges.
|
|
A folyamattábla (process table) megtelt (és a NORESRETRY nem lett felhasználva).
|
|
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.
|
|
["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).
|
|
[Hiányos/nem teljes szűrési feltétel]
|
|
A szűrési feltétel EOF-al végződik.
|
|
[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.
|
|
[É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).
|
|
[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.
|
|
[Hiba a kernel-zárolás megszüntetésekor]
|
|
[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.
|
|
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).
|
|
Az aktuális szűrés nem teljes, nem tartalmazza a célt.
|
|
A kifejezésből hiányzik a záró zárójel.
|
|
Az −f kapcsolóhoz nem lett megadva a szükséges érték.
|
|
Az −a kapcsoló után nem lett érték megadva.
|
|
Az −m kapcsoló után a konfigurációs állomány helyét kell megadni.
|
|
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.
|
|
A lapozó (swap space) teljes mértékben fel lett használva (és a NORESRETRY nem lett felhasználva).
|
|
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.
|
|
A konfigállományban az "x" figyelmen kívül hagyva (szintaxis hiba).
|
|
[Gyanú "x" konfigurációs fájl]
|
|
A címzett, és a root sem tulajdonosa az állománynak, vagy az azt tartalmazó könyvtár mindenki számára írható, vagy az alapértelmezett konfigurációs állomány ($HOME/.procmailrc) vagy az azt tartalmazó könyvtár a csoport minden tagjának írható (a konfigfájl nem kerül felhasználásra).
|
|
Terminating prematurely whilst waiting for ...
|
|
A procmail kilépett a ... várása közben.
|
|
[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"
|
|
Az "x" után megadott résznek egy MH-ra vagy egy levélmappára, esetleg egy másik könyvtárra kéne mutatnia, de az nem egy könyvtár.
|
|
Hiányzó záró aposztróf, vagy EOF.
|
|
[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.
|
|
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.
|
|
[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
|
|
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.
|
|
[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.
|
|
[Eltérés "x" és HOST között]
|
|
A rendszert "x"-nek hívják, azonban a HOST-ban más van megadva.
|
|
"x" záróállomány létrehozása.
|
|
Különböző mappák közötti keménykötés (hardlink) létrehozva.
|
|
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"
|
|
[Nem nulla kilépési kód "x"-nél]
|
|
Feltételként vagy a szűrés egyik céljaként ‘W’-jelzéssel indított program az EXIT_SUCCESS =(0) kilépési kód helyett nnn-kóddal fejezete be működését, a futás nem várt eredményre vezetett.
|
|
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".
|
|
[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.
|
|
["x" zárolásának megszüntetése]
|
|
"x" záróállomány eltávolítása.
|
FIGYELMEZTETÉSEK
|
A rendszeren lévő postafiókon történő módosítások előtt egy záróállományt létrehozó szkriptet célszerű elindítani (hacsaknem a levelező programok ugyanazt a záróállományt használják, mint amely a konfigurációs állományban meg lett adva.
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
A procmail nem a legjobb eszköz egy postafiók több felhasználó közötti megosztására, mint ahogy több felhasználót kiszolgáló egy darab POP3 -as levelesládák esetében néha előfordul. Az MTA beállításával egyéni fejlécekkel lehet ellátni a leveleket, amelyek segítségével a címzett később egyértelműen azonosítható, de ezt csak átmeneti megoldásként használjuk. Célszerűbb inkább az MTA-ban ‘virtuális felhasználó adattáblát’ (‘virtual user table’) beállítani, vagy a Fetchmail ‘multidrop’ képességét kihasználni.
|
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.
A folytatott fejlécbe beszúrt újsorokat átlépi ahelyett, hogy egy egyszerű szóköznek tekintené.
|
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:
|
|
Ha közvetlen továbbításánál a címzett neve nem található az /etc/passwd állományban, akkor a procmail közvetett módon továbbítja a leveleket. Ha nem közvetlen módon és ismeretlen (az /etc/passwd -ban nem létező) uid alatt próbál meg a procmail futni, akkor a HOME alapesetben a / lesz, a LOGNAME pedig #uid értéket veszi fel, a SHELL pedig /bin/sh lesz.
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.
Biztonsági megfontolásokból a procmail csak abszolútan vagy a HOME-hoz viszonyított relatívan, root vagy a címzett tulajdonában lévő konfigurációs állományokkal működik. A fájl és/vagy az azt tartalmazó könyvtár nem lehet mindenki által írható. A $HOME/.procmailrc esetén fontos még, hogy az állomány vagy könyvtára nem lehet a csoport számára sem írható.
Ha különböző hibák fordulnak elő a /var/spool/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/spool/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.
Könyvtárakba, MH-fiókokba vagy levélmappákba történő levélátirányításhoz nem szükséges az esetlegesen párhuzamosan futó procmail programoknak a várt/megfelelő működésük érdekében záróállományt megadni.
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
|
|
Procmail minden állományba történő levéltovábbításkor a következő kernel- zárolási metódust használja: fcntl(2).
A procmail képes NFS-en és 8-bittel működni.
|
MEGJEGYZÉSEK
|
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 <nancym AT ii DOT com> által összeállított levélszűrőkről (így a procmailről is) szóló GYIK-ot (FAQ) ajánljuk. Beszerezhető a mail-server AT rtfm DOT mit DOT edu címre küldött
|
|
send usenet/news.answers/mail/filtering-faq
|
|
tartalmú levéllel.
Nem csak a levelek érkezésekor a rendszeren beállított módon lehet a procmailt futtatni, hanem a felhasználó egyedi igényei alapján is. Ehhez a $HOME/.forward állományban kell elhelyezni a lentebb látható sort. Ügyeljünk arra, hogy ugyanúgy vigyük be a sort a fájlba (aminek mindenki számára olvashatónak kell lennie). A procmail helyét abszolút útvonallal adjuk meg. A #YOUR_USERNAME valójában nem szükséges a procmail működéséhez, a burok nem is adja át ezt az értéket a procmail-nak, azonban a biztonság kedvéért a sendmail számára van ez megadva.
"|exec /usr/bin/procmail"
A 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/spool/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/null
A procmailex(5) súgóban további példák találhatók. Ez a program a http://www.procmail.org/ vagy a ftp.procmail.org/pub/procmail/ címen található procmail levélefeldolgozó-csomag (3.14-es verzió) része. A procmail csomaggal kapcsolatos kérdéseidet/észrevételeidet a
|
|
<procmail-users AT procmail DOT org>
|
|
címen működő levelezőlistán teheted fel.
|
|
<procmail-users-request AT procmail DOT org>
|
|
címre kell írni a feliratkozáshoz.
|
|
Ha érdekelnek a legfrissebb verziók, hibajavítások akkor a következő listára kell feliratkoznod:
|
|
procmail-announce-request AT procmail DOT org
|
|
(a lista csak olvasható).
|
SZERZŐ
MAGYAR FORDÍTÁS
|
Vizi Szilárd <vizisz AT freemail DOT hu>
|
FC5 ·
FC6 ·
MDV20070 ·
MDV20071 ·
MDV20080 ·
MDV20081 ·
MDV20090 ·
RH9 ·
RHEL4 ·
RHEL5 ·
SLES9 ·
SLES10 ·
SUSE101 ·
SUSE102 ·
SUSE103 ·
SUSE110 ·
SUSE111 ·
centos4 ·
centos5 ·
debian-etch ·
debian-sarge ·
debian-unstable ·
f7 ·
f8 ·
f9 ·
f10 ·
ubuntu606 ·
ubuntu610 ·
ubuntu704 ·
ubuntu710 ·
ubuntu804 ·
ubuntu810
|