Erstellung / Verknüpfung von Filterregeln

  • Um Rückfragen vorzubeugen, bitten wir um folgende Angaben:
    * Thunderbird-Version: 38.2.0
    * Betriebssystem + Version: Windows 7 pro 64bit
    * Kontenart (POP / IMAP): POP
    * Postfachanbieter (z.B. GMX): T-Online
    * Eingesetzte Antivirensoftware: Avast free
    * Firewall: Betriebssystem-intern


    Hallo,



    ich verzweifle gerade daran, meine Outlook-Express-Regeln für den Posteeingang zu Thunderbird zu übertragen. In OE hatte ich z.B. die Möglichkeit, folgende Regel zu definieren:



    1 Wenn
    2 Absender = A oder B oder C
    3 und
    4 Betreff = xxx oder yyy oder zzz
    5 dann verschieben in Ordner ...



    Ich konnte hier getrennt voneinander die Verknüpfung der ersten Bedingung sowie den Operator 'enthält' bzw. 'enthält nicht' (Zeile 2), die Verknüpfung der zweiten Bedingung sowie den Operator 'enthält' bzw. 'enthält nicht' (Zeile 4) und die Verknüpfung der beiden Bedingungen untereinander (Zeile 3) einstellen.



    Wie bekomme ich das in TB hin?



    Ich habe nur eine Einstellung gefunden, mit der alle vorhandenen Verknüpfungen innerhalb des Filters auf einmal auf 'und' bzw. 'oder' gesetzt werden. Eine Kombination wie im o.g. Beispiel habe ich nicht finden können.



    Muß ich hier etwa, um das o.g. Beispiel nachstellen zu können, gleich 9 verschiedene Filterregeln anlegen?



    Wenn Absender = A und Betreff = xxx dann ...
    Wenn Absender = A und Betreff = yyy dann ...
    Wenn Absender = A und Betreff = zzz dann ...
    Wenn Absender = B und Betreff = xxx dann ...
    Wenn Absender = B und Betreff = yyy dann ...
    Wenn Absender = B und Betreff = zzz dann ...
    Wenn Absender = C und Betreff = xxx dann ...
    Wenn Absender = C und Betreff = yyy dann ...
    Wenn Absender = C und Betreff = zzz dann ...



    Wenn ich in OE eine wie oben gestrickte Regel mit z.B. 30 möglichen Betreff-Inhalten hatte und dann ein weiterer möglicher Absender dazukam, konnte ich diesen einfach ergänzen => Ein Eintrag



    Wenn ich die ganzen Verknüpfungen in TB tatsächlich einzeln anlegen muss, dann müsste ich bei nur einem hinzugekommenen Absender gleich 30 neue Filter anlegen... ?!?



    Wie funktionert das in TB mit den Verknüpfungen bei Filtern? Kann ich die OE-Regeln nachbauen, ohne jede Regel in etliche Einzelregeln aufdröseln zu müssen? Kann man z.B. im Textinhaltsfeld der Betreff-Abfrage verschiedene Einträge mit Semikolon getrennt eingeben?



    Danke für Eure Hilfe



    André

    Einmal editiert, zuletzt von doc_jochim ()

  • Hallo André,


    der Thunderbird beherrscht keine komplexeren Regel. Manchmal hilft es, die Boolesche Algebra zu Hilfe zu nehmen und damit seine Regeln auf einfache Formate runterzubrechen. Für Deine Regeln vom Typ (A oder B oder C) und (D oder E oder F) mit insfesamt 6 Kriterien bringt das aber eine Flut an Filtern.


    Da es vor wenigen Tagen jemand eine ähnliche Frage gestellt hat, habe ich mich jetzt mal auf die Suche nach einer Erweiterung gemacht, die Regular Expressions ermöglicht. Damit wäre Dein Problem viel bequemer zu lösen.
    Und siehe da: Laut diesem Artikel in der Mozilla Knowledgebase unterstützt das Add-On FiltaQuilla Regular Expressions.
    Mangels Bedarf habe ich diese Erweiterung nicht selbst getestet. Das könntest Du ja jetzt übernehmen.


    Gruß


    Susanne


    Nachtrag: Ich wusste doch, dass ich schon einmal nach dieser Erweiterung gesucht hatte. Siehe Wie filtere ich differenziert?
    Nachtrag 2: Das Video scheint mir allerdings nicht zu passen. Siehe besser hier: http://www.digiblog.de/2010/11…-filters-for-thunderbird/

    2 Mal editiert, zuletzt von SusiTux ()

  • Hmmm... - soweit ich gesehen habe, kann ich auch mit dem AddOn keine logischen Verknüpfungen erstellen. Auch beziehen sich die komplizierten Filterformulierungen nur auf die Einträge im Header, nicht aber auf den Nachrichtentext.


    Ich wünsche mir mein Outlook Express zurück...! :rolleyes:


    André

  • Ich benutze diese Erweiterung nicht selbst, weil ich sie nicht benötige. Ich weiß nicht, ob man damit auf Textinhalte zugreifen kann oder auf die Header beschränkt ist. Das könnte eine Limitierung im TB sein, weiß ich aber nicht.
    Aber, danach hattest Du gar nicht gefragt, sondern ausdrücklich nach Absender und Betreff.


    kann ich auch mit dem AddOn keine logischen Verknüpfungen erstellen


    Mozilla schreibt, dass diese Erweiterung Regular Expressions beherrscht. Ich kenne kein mächtigeres Werkzeug als die RegEx, um Filterabfragen zu erstellen. Und natürlich lassen sich Bedingungen innerhalb der RegEx verknüpfen, klammern, negieren, ... .
    Dass das komplizierter ist, als OE liegt in der Natur der Sache. Ich hatte aber auch nicht geschrieben, dass Regular Expressions einfach wären. Ich habe sie seit dem Studium nicht mehr benutzt und bin gar nicht traurig darüber. Kompliziert daran ist aber nicht die Logik sondern die Syntax.


    Ich wünsche mir mein Outlook Express zurück...!

    Du kannst ja ein paar Euros in die Hand nehmen und Dir den großen Bruder kaufen.

  • Ja sowas aber auch, obwohl es doch Geld kostet!


    Spaß beiseite. Du wirst Dich entscheiden müssen. Mit den Bordmitteln des TB geht lassen sich solche Filter nicht erstellen. Ich rechne nicht damit, dass die Filterfunktion des TB so bald größere Änderungen bekommt. Du kannst aber gern einen Bug eröffnen, vorher schauen, ob es diesen Wunsch nicht schon gibt. Vielleicht ist dazu ja doch bereits etwas in der Arbeit.


    Welche Optionen hast Du noch?

    • Du kannst nach einem anderen Mailclient schauen. Ich würde zunächst mal bei TheBat schauen. Dessen Filtersystem soll ziemlich gut sein. Kostet aber auch Geld. Ob es einen Newsreader hat, weiß ich nicht.
    • Du nimmst Outlook und besorgst Dir einen zusätzlichen Reader.
    • Du erstellst halt doch die Unmengen an Filter von Hand.
    • Du beschäftigst Dich doch mit den RegEx und benutzt die genannte Erweiterung.
    • Du überlegst Dir ein anderes System.


    Gruß


    Susanne

  • Hmmm... - soweit ich gesehen habe, kann ich auch mit dem AddOn keine logischen Verknüpfungen erstellen. Auch beziehen sich die komplizierten Filterformulierungen nur auf die Einträge im Header, nicht aber auf den Nachrichtentext.


    Ich wünsche mir mein Outlook Express zurück...! :rolleyes:


    André

    Soweit ich weiss unterstützt die Filter-Engine schon solche Kombinationen, es hat sich nur noch niemand gefunden ein User Interface zu schreiben. Irgendwann werde ich das wohl in meinem Addon quickFilters nachholen müssen! In der Zwischenzeit könntest Du versuchen die msgFilter.dat direkt zu editieren. Habe ich selbst noch nicht ausprobiert, aber es könnte sich in Deinem Fall evtl lohnen das mal zu tun:


    Lege erst eine Regel an die sämtliche Bedingungen mit "Oder" verknüpft: http://i.imgur.com/7ToCsuL.png


    Dann Schliesst Du Thunderbird und öffnest die Datei msgFilter.dat; findest Du hier:


    http://kb.mozillazine.org/File…the_profile_-_Thunderbird


    Du findest unter der Regel folgenden Wert


    condition="OR (subject,contains,FS Notification) OR (\"list-id\",contains,test) OR (from,contains,fastspring.com)"


    Laut mdn hat jede Filterbedingung ein booleanAnd (true = UND,false = ODER), ein beginsGrouping und endsGrouping attribut. Die letzteren zwei sind wahrscheinlich sowas wie eine Klammern:
    https://developer.mozilla.org/…nterface/nsIMsgSearchTerm



    Was ich nicht weiss ist wie Thunderbird diesen condition string liest. Ich habe mal folgende änderung probiert:



    condition="(AND (subject,contains,FS Notification) OR (\"list-id\",contains,test)) AND (from,contains,fastspring.com)"



    oder


    condition="AND ((subject,contains,FS Notification) OR (\"list-id\",contains,test)) AND (from,contains,fastspring.com)"




    (bei der zusätzlichen Klammer bin ich mir nicht ganz sicher; ich würde denken beginsGrouping setzt eine Klammer am Anfang der Bedingung und endsGrouping jeweils am Ende). Ich schätze das erste AND (was ich von OR geändert habe) wird unter Umständen ignoriert, mag aber vom UI benutzt werden um die Radiogruppe "Alle Bedingungen / mindestens eine / keine Bedingung" im Filtereditor zu setzen.


    Das scheint erstmal nix gebracht zu haben - habe also mal den Source Code überflogen. Die Funktion "ParseCondition" liest die Zeile mit den Bedingungen:


    http://mxr.mozilla.org/comm-ce…c/nsMsgFilterList.cpp#727



    es sieht hier so aus als würden die attribute beginsGrouping / endsGrouping hier nie gesetzt werden, was darauf hindeutet dass es vielleicht noch nicht möglich ist solche Filterbedingungen in msgfilter.dat abzuspeichern.



    Laut
    https://bugzilla.mozilla.org/show_bug.cgi?id=297852
    würden in der Ausführung der Filter komplexe Bedingungen unterstützt (man kann sie nur nicht mit dem Filtereditor editieren)



    Es sieht aber so aus als wäre der derzeitige Parser "zu dumm". Man müsste also erst einen Patch für den Parser schreiben... und sich dann über das User Interface Gedanken machen. Eine Low-tech Alternative die ich mal voergschlagen hatte, wäre es "Verschachtelte" Filter zu erlauben. Da könnte man dann den komplexen Filter
    (A oder B) und (C oder D) in drei Filter aufspalten:




    A oder B => Filter 1 (keine Aktion)


    C oder D => Filter 2 (keine Aktion)




    (Filter 1=true) UND (Filter 2=true) ==> Filter 3


    hierzu müsste man
    1 - Filter ohne Aktion erlauben
    2 - Filterergebnisse als Filterbedingung erlauben


    das wäre zwar nicht ideal aber vom Programmieraufwand relativ niedrig. Man bräuchte keine neue Syntax für msgfilter.dat erfinden und könnte mit dem bestehenden Filtereditor arbeiten.


    Ausserdem - Wenn wir die Extra-Klammern oben mal weglassen dann sollte


    A oder B und C


    schon funktionieren aber leider ohne Klammern.

  • Hallo Axel,



    Soweit ich weiss unterstützt die Filter-Engine schon solche Kombinationen, es hat sich nur noch niemand gefunden ein User Interface zu schreiben. Irgendwann werde ich das wohl in meinem Addon quickFilters nachholen müssen!

    Damit würdest Du wohl einigen Benutzern einen großen Gefallen tun. Ich will nicht sagen, dass hier täglich danach gefragt wird, aber hin und wieder taucht diese Anfrage schon auf.


    Ausserdem - Wenn wir die Extra-Klammern oben mal weglassen dann sollte


    A oder B und C


    schon funktionieren aber leider ohne Klammern.

    Weißt Du, ob die Reihenfolge der Filter zuverlässig eingehalten wird? Ich habe vor Jahren mal irgendwo gelesen, dass sie parallel abgearbeitet werden.
    Falls die Reihenfolge eingehalten wird, sollte das mit zwei Filtern schon heute hinzubekommen sein. Schön ist das aber nicht und für den noch komplexeren Fall von André auch nicht mehr wirklich brauchbar.


    Filter 1:
    (A oder B) und C
    Wenn (A oder B) -> Schlagwort hinzufügen


    Filter 2:
    Wenn (Schlagwort und C) -> gewünschte Aktion, ggf. Schlagwort wieder entfernen.


    Gruß


    Susanne

  • Ja die Filter werden strikt von oben nach unten durchgearbeitet - das Schlagwort liesse sich natürlich auf diese Weise einsetzen. Wenn z.B. Filter 1 die email in ein anderes Verzeichnis verschiebt dann greift Filter 2 nicht mehr. Schlagwörter sind ein möglicher Workaround; wenn wir stattdessen ein neues Feld "x-filtercondition-fulfilled" hätten und diese als neue Bedingung benutzen könnten (ohne dieses Feld wieder löschen zu müssen) wären wir schon auf halbem Weg zu einem brauchbaren UI (sort of).


    Im Originalbeispiel: (A or B or C) and (xxx or yyy or zzz)


    "Filter 1" Falls Absender = A oder B oder C => setze x-filtercondition-fulfilled="#AorBorC"
    (Ein Problem ist dass dieser Wert einmalig sein sollte und auch als label lesbar & verständlich; der Filtername wäre hier ein guter Kandidat)



    "Filter 2"Falls Betreff = xxx oder yyy oder zzz => setze x-filtercondition-fulfilled="#XYZ"


    Letzter Filterkombiniert diese beiden


    Falls x-filtercondition-fulfilled="#AorBorC" UND x-filtercondition-fulfilled="#XYZ" => Aktion ausführen


    oder Filter1+ Filter2 haben _keine_ Aktion und werden direkt in die BEdingungen eingefügt:
    falls "Filter erfüllt"="Filter 1" UND "Filter erfüllt"="Filter 2" => Aktion ausführen





    Axel