Hallo, Am Tue, 14 Oct 2003, Thorsten Haude schrieb: [..]
Lies Dir mal meinen Absatz oben durch, und vergleiche das mit einem ähnlich simplen Beispiel von Procmail. Wer würde Schwierigkeiten haben, 0: als Anfang eines Filters zu verstehen, oder eine Leerzeile als dessen Ende? Antwort: Mehr Leute als hier scheinbar viele annehmen.
Die Leerzeile hat damit genau garnix zu tun, die dient nur der Lesbarkeit :)
Ich halte es für nicht angebracht, auf die Frage nach einem Mailfilter reflexartig mit "Procmail!" zu antworten,
Soweit Ack.
obwohl die Nachteile auf der Hand liegen.
NACK!
Das ist entweder Ausdruck eines elitären Gehabes, das man Linuxanwendern immer wieder nachsagt oder man lügt sich selbst vor, daß Procmail leicht zu lernen ist,
procmail _ist_ einfach.
weil man sonst ja Zeit verschwendet hätte. (Fühlt sich jemand auf den Schlips getreten? Dann soll er mir bitte anhand des Beispiels unten (AND/OR) zeigen, warum Procmail hier nicht quasi meßbar schlechter ist.)
s.u.
Und noch ein Vergleich: Ich kann mir immer noch nicht merken, ob man bei Procmail ein AND simuliert, indem man zwei Ausdrücke in einen Filter schreibt oder indem man zwei Filter untereinanderschreibt, wobei man den ersten Filter qualifiziert..
:0 # WENN (Beginn einer Regel, ggfs. mit "Flags") * ^Foo # UND (Bedingung 1) * ^Bar # UND (Bedingung 2) ACTION # DANN
Für Maildrop gilt: AND: && OR: || So, jetzt versuch das mal wieder zu vergessen.
Wer nicht programmiert (bash, perl, C, C++), der hat sich das nicht gemerkt, zu vergessen ist da nix. Ja, das "Oder" ist leider etwas sperrig (via "score") zu realsieren, hat man aber mal _eine_ Regel, dann ist der Rest einfach. Mein Killfile fuer suse-linux sieht z.B. so aus: ==== # ~/.procmail/kill-suse.rc MONTH=`date '+%Y-%m'` :0 H ### expires: never * 1^0 ^From.*ob_ok@gmx.net # viele weitere '* 1^0' und Kommentare geschnippelt ### Mon Jan 27 23:27:40 CET 2003 ### expires: never, lernresistent * 1^0 ^From:.*marcel-stein@t-online.de * 1^0 ^From:.*marcel-stein@arcor.de # noch mehr '* 1^0' und Kommentare geschnippelt ### AND_ACTION ### lists/suse-linux-${MONTH} ==== Ich archiviere die Liste eben komplett ;) Bei maildrop waere das wohl ein aehnlich (un-)uebersichtliches Konstrukt: if ( /^From.../ || /From.../ || /From.../ ) { ### AND ACTION ### ... <was auch immer> } [..]
Und ein nicht unwesentlicher Teil meiner Procmail-Regeln stammt von irgendwo aus dem Netz und ist sehr hilfreich...
Klar, die wirst Du aber schnell übersetzt haben. Maildrops Syntax ähnelt bekannten Sprachen so sehr, daß Du in vielen Fällen sogar auf die Manpage verzichten kannst.
Definiere "bekannte Sprachen".
Zum Abschluß noch ein Beispiel: Was bedeutet wohl bei Maildrop die folgende Anweisung: cc backup
Das gleiche wie: :0 * <BEDINGUNG> { :0 c backup :0 <sonstwas> } Apropos: wie sieht bei Maildrop eigentlich die Einbindung von _beliebigen_ externen Filtern, die z.B. einen bel. Header setzen fuer alle / bestimmte Bedingungen aus? -dnh -- "Zieh was an, wo viel reinpasst" -- Becker zu Reggie in "Becker"