Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

For topics beyond KeyHelp. / Für Themen jenseits von KeyHelp.
Post Reply
User avatar
mhagge
Community Moderator
Posts: 568
Joined: Wed 8. Aug 2018, 15:19

Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Post by mhagge »

Vielleicht hat jemand einen Denkansatz für mich.

Ich verschiebe mit folgendem globalen Sieve-Filter alle als Spam erkannten Mails in den Junk-Ordner

Code: Select all

require "fileinto";

if header :contains "X-Spam-Flag" "YES" {
    fileinto "Junk";
}

if header :contains "X-Spam" "Yes" {
    fileinto "Junk";
}

if header :is "X-Spam" "Yes" {
    fileinto "Junk";
}
Das klappt auch ausgezeichnet. Allerdings wird ja gelegentlich auch mal eine Mail als Spam erkannt, die halt kein Spam ist - und dann auch entsprechend verschoben. Soweit so logisch. Verschiebe ich diese Mail aber jetzt wieder zurück in den Posteingang, greift der Filter erneut (die Kennzeichnung im Header bleibt ja erhalten) und die Mail wird nach ein paar Minuten wieder in den Junk-Ordner verschoben - usw.

Ich suche also nach einem Weg, dass der Filter nur greift, wenn eine Mail auch tatsächlich eingegangen ist, nicht wenn sie innerhalb des Postfaches verschoben wurde. Hat da jemand evtl. eine Idee / einen Denkansatz für mich?
User avatar
Jolinar
Community Moderator
Posts: 4112
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Post by Jolinar »

Ungetestet!

Code: Select all

require "fileinto";
require "date";

if header :contains "X-Spam-Flag" "YES" {
  if not date :is "internal-date" :same "arrival-date" {
    fileinto "Junk";
  }
}

if header :contains "X-Spam" "Yes" {
  if not date :is "internal-date" :same "arrival-date" {
    fileinto "Junk";
  }
}

if header :is "X-Spam" "Yes" {
  if not date :is "internal-date" :same "arrival-date" {
    fileinto "Junk";
  }
}

Edit:
Du kannst noch optimieren:

Code: Select all

require "fileinto";
require "date";

if anyof (header :contains "X-Spam-Flag" "YES",
          header :is "X-Spam" "Yes",
          header :contains "X-Spam" "Yes") {
  if not date :is "internal-date" :same "arrival-date" {
    fileinto "Junk";
  }
}
Last edited by Jolinar on Mon 17. Jun 2024, 14:15, edited 1 time in total.
Reason: Edit Beitrag ergänzt
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
User avatar
mhagge
Community Moderator
Posts: 568
Joined: Wed 8. Aug 2018, 15:19

Re: Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Post by mhagge »

Danke Dir! Ich baue das mal ein und warte mal ein bisschen, wie es sich auswirkt
User avatar
mhagge
Community Moderator
Posts: 568
Joined: Wed 8. Aug 2018, 15:19

Re: Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Post by mhagge »

Hmm. will nicht. Schon das kompilieren des Sieve-Scripts klappt nicht

Code: Select all

 error: unknown tagged argument ':same' for the date test (reported only once at first occurrence
Ist das wirklich „same“? Das habe ich in den RFCs nicht gefunden
User avatar
Jolinar
Community Moderator
Posts: 4112
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Post by Jolinar »

mhagge wrote: Mon 17. Jun 2024, 20:57 Ist das wirklich „same“?
Oha, da hab ich das wohl falsch erinnert. Probier mal equal statt same:

Code: Select all

require "fileinto";
require "date";

if anyof (header :contains "X-Spam-Flag" "YES",
          header :is "X-Spam" "Yes",
          header :contains "X-Spam" "Yes") {
  if not date :is "internal-date" :equal "arrival-date" {
    fileinto "Junk";
  }
}
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
User avatar
mhagge
Community Moderator
Posts: 568
Joined: Wed 8. Aug 2018, 15:19

Re: Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Post by mhagge »

Nein, mag er auch nicht, selbe Fehlermeldung.

Ich muss mir das mal näher anschauen - die RFC-Beschreibung zur Sieve-Date-Extension ist ja eigentlich recht ausführlich (wobei das fast schon das Problem ist - es ist zu ausführlich :D )

Aber danke auf jeden Fall für den Denkansatz!
User avatar
mhagge
Community Moderator
Posts: 568
Joined: Wed 8. Aug 2018, 15:19

Re: Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Post by mhagge »

Arg.. Ich wundere mich, warum die Mails immer noch in den Junk-Ordner verschoben werden, obwohl ich den Sieve-Filter zum Testen mal komplett deaktiviert hatte.

Bei den Mail-Programmen hatte ich ja drauf geachtet, dass ich die lokale Spam-Filterung rausnehme. Nun hatte ich meine Test-Mail-Adresse aber mal in ein CRM eingebunden, welches (was da durchaus auch praktisch ist) ein eingebautes Webmail hat. Und in diesem Webmail war die Spam-Filterung mit der EInstellung "auf Header anderer Spamflter verlassen" noch aktiv.

Da die Headerzeilen ja drinbleiben, egal in welchem Ordner das landet hat dieser "lokale" Filter immer fließig die Mails in den Junk-Ordner verschoben, egal was serverseitig passiert ist. :oops: :shock: :D :D :D
User avatar
Jolinar
Community Moderator
Posts: 4112
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Post by Jolinar »

mhagge wrote: Tue 18. Jun 2024, 09:47 Nein, mag er auch nicht, selbe Fehlermeldung.
Ich hab jetzt nur mal kurz die Doku überflogen...Mit dem folgenden if Vergleich könnte es gehen:

Code: Select all

require "fileinto";
require "date";

if anyof (header :contains "X-Spam-Flag" "YES",
          header :is "X-Spam" "Yes",
          header :contains "X-Spam" "Yes") {
  if not date :value "eq" "internal-date" "arrival-date" {
    fileinto "Junk";
  }
}
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
User avatar
mhagge
Community Moderator
Posts: 568
Joined: Wed 8. Aug 2018, 15:19

Re: Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Post by mhagge »

Ne, mag auch nicht

Code: Select all

global-antispam: line 7: error: unknown tagged argument ':value' for the date test (reported only once at first occurrence).
global-antispam: error: validation failed.
sievec(root): Fatal: failed to compile sieve script 'global-antispam.sieve'
Ich glaube ja langsam, dass es auf diesem Weg gar nicht geht - ich meine, so selten dürfte der Anwendungsfall ja auch nicht sein, es befindet sich aber nirgendwo ein Beispiel oder dergleichen, welches man ggf. analog verwenden könnte (ich habe jedenfalls nichts gefunden). Es gibt ein paar, wo es um definierte Daten geht (vor allem im Zusammenhang mit Autorespondern), aber nichts, wo es um Daten aus dem Header der Mail geht
User avatar
Jolinar
Community Moderator
Posts: 4112
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Post by Jolinar »

Wäre es ein Ansatz, den Header beim Move ins Junk mit zB. "moved" zu taggen und dann im Sieve darauf zu prüfen (also wenn mit "moved" getaggt, nicht erneut moven)?
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
User avatar
mhagge
Community Moderator
Posts: 568
Joined: Wed 8. Aug 2018, 15:19

Re: Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Post by mhagge »

Wäre ein anderer Denkansatz - durchaus möglich, das das eher klappt. Ich schau mir das mal an, Danke!
Post Reply