Page 1 of 1

Sieve-Filter nur bei Posteingang, nicht bei manuellem verschieben

Posted: Mon 17. Jun 2024, 14:06
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?

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

Posted: Mon 17. Jun 2024, 14:11
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";
  }
}

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

Posted: Mon 17. Jun 2024, 14:35
by mhagge
Danke Dir! Ich baue das mal ein und warte mal ein bisschen, wie es sich auswirkt

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

Posted: Mon 17. Jun 2024, 20:57
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

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

Posted: Mon 17. Jun 2024, 21:20
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";
  }
}

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

Posted: Tue 18. Jun 2024, 09:47
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!

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

Posted: Tue 18. Jun 2024, 11:09
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

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

Posted: Tue 18. Jun 2024, 14:41
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";
  }
}

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

Posted: Wed 19. Jun 2024, 09:59
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

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

Posted: Wed 19. Jun 2024, 11:40
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)?

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

Posted: Wed 19. Jun 2024, 13:20
by mhagge
Wäre ein anderer Denkansatz - durchaus möglich, das das eher klappt. Ich schau mir das mal an, Danke!