Hallo Liste ich habe ein kleines Problem mit der Procmailsyntax. Bei dieser Regel 0: * ^Subject:.*(cash|adult|girls|nigeria|sexy|viagra) /dev/null bekomme ich immer folgende Fehlermeldung procmail: Skipped "0:" procmail: Skipped "* ^Subject:.*(cash|adult|girls|nigeria|sexy|viagra)" procmail: Skipped "/dev/null" Ich sehe aber den Fehler nicht. Lt. man procmail und man 5 procmailex sollte die richtig sein, obwohl dort nicht die Mehrfachwerte als Beispiel aufgeführt sind. Die fast gleiche Regel für den Body funktioniert. Vielleicht könnt Ohr mir weiterhelfen. Danke Peter -- Peter Nacken, ct-nacken@gmx.de
Am Mittwoch, 8. Oktober 2003 10:19 schrieb Peter Nacken:
ich habe ein kleines Problem mit der Procmailsyntax.
Bei dieser Regel
0:
Heisst es nicht immer ":0" ???
* ^Subject:.*(cash|adult|girls|nigeria|sexy|viagra) /dev/null
bekomme ich immer folgende Fehlermeldung
procmail: Skipped "0:" procmail: Skipped "* ^Subject:.*(cash|adult|girls|nigeria|sexy|viagra)" procmail: Skipped "/dev/null"
Ich sehe aber den Fehler nicht. Lt. man procmail und man 5 procmailex sollte die richtig sein, obwohl dort nicht die Mehrfachwerte als Beispiel aufgeführt sind. Die fast gleiche Regel für den Body funktioniert.
Vielleicht könnt Ohr mir weiterhelfen.
-- Andreas
* Am Mit, 08 Okt 2003 schrieb Peter Nacken:
Hallo Liste
ich habe ein kleines Problem mit der Procmailsyntax.
Bei dieser Regel
0: * ^Subject:.*(cash|adult|girls|nigeria|sexy|viagra) /dev/null
bekomme ich immer folgende Fehlermeldung
procmail: Skipped "0:" procmail: Skipped "* ^Subject:.*(cash|adult|girls|nigeria|sexy|viagra)" procmail: Skipped "/dev/null"
Ich sehe aber den Fehler nicht. Lt. man procmail und man 5 procmailex sollte
Mache mal einen : vor die Null. Gruß Christoph -- Christoph Maurer - Tux#194235 - christoph-maurer at gmx.de
Hallo, Am Wed, 08 Oct 2003, Peter Nacken schrieb:
Hallo Liste
ich habe ein kleines Problem mit der Procmailsyntax.
Bei dieser Regel
0: ^^ Ein "Dreher". Die Syntax ist: ":0 [ FLAGS ] [ : [ LOCKFILE ] ]" ^^(!) (was auch so aehnlich in 'man procmailrc' steht).
* ^Subject:.*(cash|adult|girls|nigeria|sexy|viagra)
Da kannst du wohl noch ein '|(large|big).*(pen[iI1]s|breast)' oder so hinzufuegen... Ich fuehle mich ja immer noch irgendwie amuesiert, wenn ich SPAM sehe, wo ich meine Brueste vergroessern lassen soll ;)
/dev/null
bekomme ich immer folgende Fehlermeldung
procmail: Skipped "0:" procmail: Skipped "* ^Subject:.*(cash|adult|girls|nigeria|sexy|viagra)" procmail: Skipped "/dev/null"
Ich sehe aber den Fehler nicht. Lt. man procmail und man 5 procmailex sollte die richtig sein, obwohl dort nicht die Mehrfachwerte als Beispiel aufgeführt sind. Die fast gleiche Regel für den Body funktioniert.
S.o. Bei solchen Fehlermeldungen gilt es die "authoritative" manpage, also 'man procmailrc' zu konsultieren -- da stehen dann die Chancen nicht schlecht, ueber so einen Zeichendreher, wie du ihn eingebaut hast zu stolpern :) -dnh -- "The whole neighborhood is dark, and our servers are down, but the situation is under control --- I can still make popcorn!" -- dpm in the Monastery
Moin,
* David Haller
0: ^^ Ein "Dreher". Die Syntax ist: ":0 [ FLAGS ] [ : [ LOCKFILE ] ]" ^^(!) (was auch so aehnlich in 'man procmailrc' steht).
Was widerum nur jemand versteht der seine sendmail.cf händisch erstellt. Gib es endlich zu, Procmail's Syntax saugt. Thorsten -- When machines and computers, profit motives and property rights are considered more important than people; the giant triplets of racism, militarism, and economic exploitation are incapable of being conquered. - Martin Luther King
* Am Mit, 08 Okt 2003 schrieb Thorsten Haude:
Moin,
* David Haller
[2003-10-08 11:39]: 0: ^^ Ein "Dreher". Die Syntax ist: ":0 [ FLAGS ] [ : [ LOCKFILE ] ]" ^^(!) (was auch so aehnlich in 'man procmailrc' steht).
Was widerum nur jemand versteht der seine sendmail.cf händisch erstellt. Gib es endlich zu, Procmail's Syntax saugt.
Wieso wußte ich bloß, was Du schreiben würdest, bevor ich die Mail geöffnet hatte :-) Sachlich muss ich wieder einmal widersprechen, ich finde die Procmail-Syntax vollkommen ok, man kann sie genauso lernen, wie C,C++,Perl,Ruby,Python,Assembler,Fortran55...:-) :0 ist doch vom Prinzip nichts anderes als PROCEDURE... Gruß Christoph -- Christoph Maurer - Tux#194235 - christoph-maurer at gmx.de
Moin,
* Christoph Maurer
Sachlich muss ich wieder einmal widersprechen, ich finde die Procmail-Syntax vollkommen ok, man kann sie genauso lernen, wie C,C++,Perl,Ruby,Python,Assembler,Fortran55...:-)
Klar, nur stellt sich die Frage, ob man eine Programmiersprache lernen muß, wenn man nur einen Mailfilter braucht. Procmail ist jedefalls für das, was es leistet, deutlich zu schwierig zu lernen. Thorsten -- Everything below this line is a lie. Everything above this line is a lie.
Thorsten schrieb:
* Christoph Maurer
[2003-10-08 13:23]: Sachlich muss ich wieder einmal widersprechen, ich finde die Procmail-Syntax vollkommen ok, man kann sie genauso lernen, wie C,C++,Perl,Ruby,Python,Assembler,Fortran55...:-)
Klar, nur stellt sich die Frage, ob man eine Programmiersprache lernen muß, wenn man nur einen Mailfilter braucht. Procmail ist jedefalls für das, was es leistet, deutlich zu schwierig zu lernen.
Glaube daß der Umfang der Möglichkeiten bei Procmail mit eben dieser etwas gewöhnungsbedürftigen Syntax erkauft wird. Ich muß aber nicht jeden Tag meine .procmailrc ändern, und bin heilfroh über die Arbeit die Procmail mir abnimmt. Über funktionsgleiche Alternativen habe ich keine Erfahrung, und kann daher auch nichts drüber sagen. (Mögen besser oder schlechter sein...) Ralph -- NEU FÜR ALLE - GMX MediaCenter - für Fotos, Musik, Dateien... Fotoalbum, File Sharing, MMS, Multimedia-Gruß, GMX FotoService Jetzt kostenlos anmelden unter http://www.gmx.net +++ GMX - die erste Adresse für Mail, Message, More! +++
Moin,
* Ralph Mueller
Thorsten schrieb:
* Christoph Maurer
[2003-10-08 13:23]: Sachlich muss ich wieder einmal widersprechen, ich finde die Procmail-Syntax vollkommen ok, man kann sie genauso lernen, wie C,C++,Perl,Ruby,Python,Assembler,Fortran55...:-)
Klar, nur stellt sich die Frage, ob man eine Programmiersprache lernen muß, wenn man nur einen Mailfilter braucht. Procmail ist jedefalls für das, was es leistet, deutlich zu schwierig zu lernen.
Glaube daß der Umfang der Möglichkeiten bei Procmail mit eben dieser etwas gewöhnungsbedürftigen Syntax erkauft wird. Ich muß aber nicht jeden Tag meine .procmailrc ändern, und bin heilfroh über die Arbeit die Procmail mir abnimmt.
Ich bezweifele ja nicht, daß Procmail seine Arbeit macht (hat es bei mir auch jahrelang getan), sondern nur, ob man es Newbies empfehlen sollte. Maildrop ist leistungsfähiger ohne eine so grausame Syntax zu haben. Thorsten -- An idea is not responsible for the people who believe in it.
Hallo, Am Wed, 08 Oct 2003, Thorsten Haude schrieb:
* David Haller
[2003-10-08 11:39]: 0: ^^ Ein "Dreher". Die Syntax ist: ":0 [ FLAGS ] [ : [ LOCKFILE ] ]" ^^(!) (was auch so aehnlich in 'man procmailrc' steht).
Was widerum nur jemand versteht der seine sendmail.cf händisch erstellt.
Hab ich nicht -- versteh procmail aber dennoch.
Gib es endlich zu, Procmail's Syntax saugt.
Ach was. Normal braucht man nur eines der folgenden: :0 ## normaler Header Test :0 B ## Body Test :0 fw ## Filter Wer sich diese 3 Dinger nicht merken kann, der ist auch zu doof, sich das aequivalent in Mail::Filter oder sonstwas zu merken. Aber natuerlich hast du recht, procmail saugt. Genau wie alles andere. -dnh -- If breathing required conscious thought, the world population would be on a sharp decline. -- Greg Andrews
Moin,
* David Haller
Ach was. Normal braucht man nur eines der folgenden:
:0 ## normaler Header Test :0 B ## Body Test :0 fw ## Filter
Wer sich diese 3 Dinger nicht merken kann, der ist auch zu doof, sich das aequivalent in Mail::Filter oder sonstwas zu merken.
Das Problem sind nicht die drei Dinger an sich, sondern daß sie vollkommen künstlich sind, völlig außerhalb normaler Gepflogenheiten. Viele andere Systeme ähneln sich, darum muß man nicht immer alles neu lernen. Oder so: Procmail hat Hieroglyphen, der Rest benutzt lateinische Schrift. Klar kann man Hieroglyphen lernen, aber warum der Aufwand, wenn die Alternativen einfacher zu lernen und nicht weniger leistungsfähig sind? Thorsten -- A witty saying proves nothing. - Voltair
Hallo, Am Fri, 10 Oct 2003, Thorsten Haude schrieb:
* David Haller
[2003-10-09 00:08]: Ach was. Normal braucht man nur eines der folgenden:
:0 ## normaler Header Test :0 B ## Body Test :0 fw ## Filter
Wer sich diese 3 Dinger nicht merken kann, der ist auch zu doof, sich das aequivalent in Mail::Filter oder sonstwas zu merken.
Das Problem sind nicht die drei Dinger an sich, sondern daß sie vollkommen künstlich sind, völlig außerhalb normaler Gepflogenheiten. Viele andere Systeme ähneln sich, darum muß man nicht immer alles neu lernen.
Oder so: Procmail hat Hieroglyphen, der Rest benutzt lateinische Schrift. Klar kann man Hieroglyphen lernen, aber warum der Aufwand, wenn die Alternativen einfacher zu lernen und nicht weniger leistungsfähig sind?
Weil sich $DAU auch lateinische Woerter genausoschlecht lernt bzw. genausowenig merken kann? if ( $mail->header =~ /^X-Mailinglist:.*suse-linux$/ ) { $mail->accept("suse-linux") } :0 * ^X-Mailinglist:.*suse-linux$ suse-linux Ich seh da keinen grossen Unterschied... Und fuer "fortgeschrittene" Anwender ist es IMHO Jacke wie Hose, welche Variante verwendet wird. -dnh -- "Wenn du angesprochen bist, dann kannst du ruhig aufstehen, Ulla" -- Matthias Richling als Müntefering, im "Scheibenwischer" und mit Ulla Schmidt im Publikum(!)
Moin,
* David Haller
Ich seh da keinen grossen Unterschied...
Ich weiß, weil Du mit Procmail schon zu vertraut bist. Nimm doch das aktuelle Beispiel und sieh es Dir nochmal an. Nur weil Procmails Syntax wie Rauschen wirkt, konnte es zu dem Fehler überhaupt kommen. Wie wahrscheinlich ist dagegen, daß jemand in diesem Beispiel¹: if (/some regex/) { to mailbox } fi oder ot schreibt, ohne es zu merken? Wer würde Schwierigkeiten haben, zu verstehen, daß die Klammern etwas zusammenfassen, und daß öffnende und schließende Klammer vom gleichen Typ sein müssen? Daß die beiden Typen von Klammern unterschiedliche Bedeutungen haben? Daß das 'if' in engem Zusammenhang mit der Bedingung dahinter steht? Daß 'to' eine Richtung angibt? Ich bleibe dabei: Procmail hat eine idiotische Syntax, und wer es ohne Warnung und Nennung von Alternativen¹ an Anfänger verkaufen will, begeht einen Fehler. Nicht, weil ich es nicht mag, sondern weil sachliche Gründe dagegen sprechen. Procmail zu lernen dauert länger als bei Alternativen¹, und der Aufwand läßt sich unmöglich auf andere Programme übertragen. Umgekehrt ähnelt die Syntax der Alternativen¹ vielen anderen Sprachen² genug, um schon bei oberflächlichen Kenntnissen schnell verstanden zu sein. Früher hätte ich noch das Argument akzeptiert, daß die weite Verbreitung ein Vorteil ist (wie bei Windows). Nachdem ich aber meine Procmailregeln in wenigen Minuten in eine Alternative¹ übersetzt hatte, lasse ich das auch nicht mehr gelten. Übrigens: Auch als ich noch nicht wußte, daß Mail::Audit ein nicht länger gewarteter Sack voll Käfer ist, habe ich nie behauptet, es wäre schnell oder leicht zu verstehen (wenn man kein Perl kann). Es muß doch möglich sein, ein wenig Fairneß auch seiner Lieblingssoftware gegenüber aufzubringen. 1: Maildrop 2: Shell, Perl, C, Java, PHP, Ruby, ...eigentlich jede Sprache mit if. Thorsten -- I fear that Digital Rights Management today is Political Rights Management tomorrow. That embedding these kinds of technological controls into the very architecture of computing has the capacity to become a form of political control in the not so distant future. - John Perry Barlow
* Am Fre, 10 Okt 2003 schrieb Thorsten Haude:
Wie wahrscheinlich ist dagegen, daß jemand in diesem Beispiel¹: if (/some regex/) { to mailbox } fi oder ot schreibt, ohne es zu merken? Wer würde Schwierigkeiten haben, zu verstehen, daß die Klammern etwas zusammenfassen, und daß öffnende und schließende Klammer vom gleichen Typ sein müssen? Daß die beiden Typen von Klammern unterschiedliche Bedeutungen haben? Daß das 'if' in engem Zusammenhang mit der Bedingung dahinter steht? Daß 'to' eine Richtung angibt?
Wer sich mit Mailfilterung beschäftigt und eigene Skripte schreiben will, wird wohl auch in der Lage sein, die Manpage zu lesen, wo die Syntax haarklein beschrieben ist.
... Früher hätte ich noch das Argument akzeptiert, daß die weite Verbreitung ein Vorteil ist (wie bei Windows). Nachdem ich aber meine Procmailregeln in wenigen Minuten in eine Alternative¹ übersetzt hatte, lasse ich das auch nicht mehr gelten.
So, ich habe gerade mal wc laufen lassen, ich habe aktuell 4537 Zeilen Procmail-Regeln in Benutzung, das hat man sicher nicht in 5 Minuten übersetzt, zumal das Übersetzen ja nur geht, wenn man die Syntax beider Sprachen kann. Und ein nicht unwesentlicher Teil meiner Procmail-Regeln stammt von irgendwo aus dem Netz und ist sehr hilfreich... Gruß Christoph -- Christoph Maurer - Tux#194235 - christoph-maurer at gmx.de
Moin,
* Christoph Maurer
* Am Fre, 10 Okt 2003 schrieb Thorsten Haude:
Wie wahrscheinlich ist dagegen, daß jemand in diesem Beispiel¹: if (/some regex/) { to mailbox } fi oder ot schreibt, ohne es zu merken? Wer würde Schwierigkeiten haben, zu verstehen, daß die Klammern etwas zusammenfassen, und daß öffnende und schließende Klammer vom gleichen Typ sein müssen? Daß die beiden Typen von Klammern unterschiedliche Bedeutungen haben? Daß das 'if' in engem Zusammenhang mit der Bedingung dahinter steht? Daß 'to' eine Richtung angibt?
Wer sich mit Mailfilterung beschäftigt und eigene Skripte schreiben will, wird wohl auch in der Lage sein, die Manpage zu lesen, wo die Syntax haarklein beschrieben ist.
Habe ich irgendwo geschrieben, daß es unmöglich ist, Procmail zu lernen und produktiv einzusetzen? Man kann auch ein komplette GUI in Assembler schreiben, ich habe mal jemand getroffen, der das getan hat. Es ist halt nur so, daß Procmails Syntax völlig isoliert dasteht, völlig konzeptionslos ist und sich kaum selbst ähnelt. 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. Ich halte es für nicht angebracht, auf die Frage nach einem Mailfilter reflexartig mit "Procmail!" zu antworten, obwohl die Nachteile auf der Hand liegen. 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, 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.)
Früher hätte ich noch das Argument akzeptiert, daß die weite Verbreitung ein Vorteil ist (wie bei Windows). Nachdem ich aber meine Procmailregeln in wenigen Minuten in eine Alternative¹ übersetzt hatte, lasse ich das auch nicht mehr gelten.
So, ich habe gerade mal wc laufen lassen, ich habe aktuell 4537 Zeilen Procmail-Regeln in Benutzung, das hat man sicher nicht in 5 Minuten übersetzt, zumal das Übersetzen ja nur geht, wenn man die Syntax beider Sprachen kann.
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.. Für Maildrop gilt: AND: && OR: || So, jetzt versuch das mal wieder zu vergessen. Du kannst also in wenigen Minuten lernen, was man von Maildrop wissen muß, um Deine Filter zu übersetzen. (Etwas länger, wenn Du Maildrops überlegene Syntaxelemente wie Schleifen benutzen willst.) Klar, bei entsprechend vielen Regeln hast Du dann noch Tipperei, aber das wirst Du wohl nicht als Argument anbringen wollen.
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. Zum Abschluß noch ein Beispiel: Was bedeutet wohl bei Maildrop die folgende Anweisung: cc backup Thorsten -- Everyone has the right to freedom of opinion and expression; this right includes freedom to hold opinions without interference and to seek, receive and impart information and ideas through any media and regardless of frontiers. - Universal Declaration of Human Rights, Article 19
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"
* Am Die, 14 Okt 2003 schrieb David Haller:
Am Tue, 14 Oct 2003, Thorsten Haude schrieb:
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.
ACK.
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.)
Weil ich weiß, wie ein And und ein Or unter Procmail gehen. Beim ersten mal musste ich nachgucken, das hätte ich aber unter Maildrop auch gemusst...
... 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:
Dafür erlaubt Scoring recht einfach Bedingungen, wie mindestens zwei Ausdrücke sind war, oder eine Gewichtung von Matches. Das ist IMHO sehr hilfreich, z.B. beim Spam-Filtern... Gruß Christoph -- Christoph Maurer - Tux#194235 - christoph-maurer at gmx.de
Moin,
* Christoph Maurer
Am Tue, 14 Oct 2003, Thorsten Haude schrieb:
(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.)
Weil ich weiß, wie ein And und ein Or unter Procmail gehen. Beim ersten mal musste ich nachgucken, das hätte ich aber unter Maildrop auch gemusst...
Ach, haben wir nicht eben festgestellt, daß ein OR nur unter Einsatz völlig sachfremder Mittel zu erreichen ist? Schon die Tatsache, daß das eine FAQ ist, sagt wohl alles. (Ich habe tatsächlich arge Probleme zu glauben, daß Du '&&' und '||' für gleichwertig hältst zu 'a' und dieser Scoringkrücke.)
Dafür erlaubt Scoring recht einfach Bedingungen, wie mindestens zwei Ausdrücke sind war, oder eine Gewichtung von Matches. Das ist IMHO sehr hilfreich, z.B. beim Spam-Filtern...
Dann schlage ich vor, daß Du mal einen Blick auf Maildrops Scoring wirfst. Thorsten -- Why waste time learning, when ignorance is instantaneous? - Calvin
Moin,
* David Haller
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 :)
Ach.
Ich halte es für nicht angebracht, auf die Frage nach einem Mailfilter reflexartig mit "Procmail!" zu antworten,
Soweit Ack.
Na, das merkt man aber bei den wenigsten hier.
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
Es ist bezeichnend, daß Du Kommentare brauchst, um das Beispiel lesbar zu machen. Das ist bei Maildrop nicht nötig: if (/^Foo/ && /^Bar/) { ACTION }
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.
Klar, nur ist erstens die Syntax deutlich einfacher und naheliegender (ich wiederhole: AND: &&, OR: ||). Zweitens ist es bei Procmail ganz und gar und vollkommen ausgeschlossen, einen zweiten Anwendungsbereich zu finden, der Procmail auch nur annähernd ähnelt. Jegliche Investition in Procmail ist für jeden anderen Bereich vollkommen nutzlos. Wer sich dagegen mit Maildrop auseinandersetzt, hat schon eine Grundlage für die Shellprogrammierung, und Du wirst mir sicher zustimmen, daß das ein Vorteil ist.
Ja, das "Oder" ist leider etwas sperrig (via "score") zu realsieren
Natürlich, das versuche ich ja schon die ganze Zeit klarzumachen. Warum behauptest Du aber weiterhin, daß Du die Unterschiede nicht siehst?
hat man aber mal _eine_ Regel, dann ist der Rest einfach.
Meinst Du dank Copy und Paste?
### expires: never * 1^0 ^From.*ob_ok@gmx.net
1^0 = 1, oder? Da ist die Syntax von Procmail ja mal wieder ein Ausbund von Klarheit und Eleganz. (Allerdings muß ich zugeben, daß ich keine Ahnung habe, wie Maildrops Scoring aussieht.)
# 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 verstehe nicht, wie wird da gefiltert? Da werden doch nur Mails mit einer Punktzahl versehen, oder? Gibt es einen Defaultwert, unter dem Mails gedropt werden?
Bei maildrop waere das wohl ein aehnlich (un-)uebersichtliches Konstrukt:
if ( /^From.../ || /From.../ || /From.../ ) { ### AND ACTION ### ... <was auch immer> }
Fast genau so sieht die Syntax aus, nur das Escapen der Zeilenwechsel fehlt, das geht also auch ohne Manpage. Glaubst Du, es wäre bei Procmail möglich gewesen, aus dem Stehgreif die richtige Syntax zu raten? Allerdings ist das nur die ein-paar-Minuten-Lösung, von der ich gesprochen habe, besser würde man Code und Daten trennen: if (lookup(getaddr($FROM), "/home/user/.mutt/killfile")) { log "Found known spammer!" to /dev/null } Das Killfile wäre dann ein einfache Liste von Adressen: - - - Schnipp - - - marcel-stein@t-online.de marcel-stein@arcor.de dem.stein.sein.marcel@yahoo.de marcellus-von-steinheimer@aol.com usw@usw.de - - - Schnapp - - - Jetzt erklär bitte nochmal, inwieweit die beiden Lösungen gleichwertig sind oder warum Procmail hier sonst überzeugen kann.
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".
Habe ich schon. Etwas überspitzt ausgedrückt alles mit 'if'. Du hast jedenfalls oben richtig geraten, also geh einfach im Kopf durch, was Du so kannst.
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> }
Uh, ich hoffe nicht. Was soll das für eine Bedingung sein? Es geht aber eher darum, daß schon rudimentäre Kenntnisse über Email ausreichen, damit man versteht, was die Anweisung macht. Das ist bei Procmail sicher nicht so.
Apropos: wie sieht bei Maildrop eigentlich die Einbindung von _beliebigen_ externen Filtern, die z.B. einen bel. Header setzen fuer alle / bestimmte Bedingungen aus?
Es gibt ein Äquivalent zu formail, falls Du das meinst. Durch einen externen Prozeß durchpipen geht natürlich auch. Thorsten -- There must be a parallel universe where Starbucks sells cocaine in dilute, controlled, taxed doses, but where (crack) caffiene is sniffed and smoked in huge binges, and smuggled in by evil Columbian cartels. - Rogerborg
participants (6)
-
Andreas Winkelmann
-
Christoph Maurer
-
David Haller
-
Peter Nacken
-
Ralph Mueller
-
Thorsten Haude