Rspamd Bayes lernen durch Verschieben: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= Rspamd Bayes lernen durch Verschieben (IMAPSieve ON TOP) = == Ziel == * Bestehendes Setup bleibt unverändert: ** Postfix + Rspamd + Dovecot (LMTP + Sieve)…“) |
|||
| Zeile 8: | Zeile 8: | ||
** Junk-Entscheidung weiterhin nur über Sieve | ** Junk-Entscheidung weiterhin nur über Sieve | ||
* Lernen erfolgt automatisch: | * Lernen erfolgt automatisch: | ||
| − | ** Mail | + | ** Mail aus INBOX nach INBOX.Junk verschoben → learn_spam |
| − | ** Mail | + | ** Mail aus INBOX.Junk nach INBOX verschoben → learn_ham |
* Kein Autolearn | * Kein Autolearn | ||
* Kein Reject | * Kein Reject | ||
| − | * | + | * Keine Client-Plugins erforderlich |
== Voraussetzung == | == Voraussetzung == | ||
* Rspamd Bayes ist aktiv (sqlite) | * Rspamd Bayes ist aktiv (sqlite) | ||
* rspamc funktioniert lokal | * rspamc funktioniert lokal | ||
| − | * Junk-Ordner heißt: INBOX.Junk | + | * Junk-Ordner heißt exakt: INBOX.Junk |
| − | * IMAP | + | * IMAP MOVE oder COPY wird serverseitig ausgeführt |
== Prinzip == | == Prinzip == | ||
| − | ; Dovecot IMAPSieve reagiert auf IMAP COPY | + | ; Dovecot IMAPSieve reagiert auf IMAP MOVE/COPY |
| − | ; | + | ; Zielordner bestimmt Lernrichtung |
| − | ; rspamc lernt die Mail | + | ; rspamc lernt exakt die betroffene Mail |
| − | == | + | == IMAPSieve Plugin für IMAP aktivieren == |
| − | *vi /etc/dovecot/conf.d/ | + | ; Korrekte Stelle für protocol imap |
| + | |||
| + | *vi /etc/dovecot/conf.d/20-imap.conf | ||
<pre> | <pre> | ||
protocol imap { | protocol imap { | ||
| Zeile 33: | Zeile 35: | ||
</pre> | </pre> | ||
| − | *vi /etc/dovecot/conf.d/90- | + | == IMAPSieve + extprograms konfigurieren == |
| + | ; Nur Plugin-Konfiguration, KEIN protocol-Block | ||
| + | |||
| + | *vi /etc/dovecot/conf.d/90-imapsieve.conf | ||
<pre> | <pre> | ||
plugin { | plugin { | ||
| Zeile 62: | Zeile 67: | ||
</pre> | </pre> | ||
| − | == | + | == Lernskripte an Zielordner binden == |
| − | *vi /etc/dovecot/conf.d/90-imapsieve.conf | + | ; MOVE und COPY explizit erlauben |
| + | |||
| + | *vi /etc/dovecot/conf.d/90-imapsieve-learn.conf | ||
<pre> | <pre> | ||
plugin { | plugin { | ||
imapsieve_mailbox1_name = INBOX.Junk | imapsieve_mailbox1_name = INBOX.Junk | ||
| − | imapsieve_mailbox1_causes = COPY | + | imapsieve_mailbox1_causes = COPY MOVE |
imapsieve_mailbox1_before = file:/var/lib/dovecot/sieve/learn-spam.sieve | imapsieve_mailbox1_before = file:/var/lib/dovecot/sieve/learn-spam.sieve | ||
imapsieve_mailbox2_name = INBOX | imapsieve_mailbox2_name = INBOX | ||
| − | imapsieve_mailbox2_causes = COPY | + | imapsieve_mailbox2_causes = COPY MOVE |
imapsieve_mailbox2_before = file:/var/lib/dovecot/sieve/learn-ham.sieve | imapsieve_mailbox2_before = file:/var/lib/dovecot/sieve/learn-ham.sieve | ||
} | } | ||
| Zeile 89: | Zeile 96: | ||
== Funktionstest == | == Funktionstest == | ||
| − | ; Spam aus INBOX nach Junk verschieben | + | ; Spam aus INBOX nach INBOX.Junk verschieben |
| − | |||
| − | |||
*rspamc stat | *rspamc stat | ||
| − | ; Ham aus Junk nach INBOX verschieben | + | ; Ham aus INBOX.Junk nach INBOX verschieben |
| − | |||
| − | |||
*rspamc stat | *rspamc stat | ||
== Wichtige Hinweise == | == Wichtige Hinweise == | ||
| − | * Lernen erfolgt nur bei COPY | + | * Lernen erfolgt nur bei IMAP MOVE oder COPY |
| − | * Automatische Sieve-Filter lösen | + | * Automatische serverseitige Sieve-Filter lösen kein Lernen aus |
| − | * Jede Mail wird | + | * Jede Mail wird genau einmal gelernt |
| − | * Bayes | + | * Bayes benötigt signifikant mehr HAM als SPAM |
| − | * | + | * Keywords bleiben deterministisch führend |
== Merksatz == | == Merksatz == | ||
| − | ; Junk | + | ; In Junk schieben = SPAM lernen |
| − | ; Junk | + | ; Aus Junk holen = HAM lernen |
| − | ; Admin entscheidet, Bayes | + | ; Admin entscheidet, Bayes passt sich an |
Version vom 15. Dezember 2025, 15:54 Uhr
Rspamd Bayes lernen durch Verschieben (IMAPSieve ON TOP)
Ziel
- Bestehendes Setup bleibt unverändert:
- Postfix + Rspamd + Dovecot (LMTP + Sieve)
- Keyword-Filter aktiv
- Bayes aktiv
- Junk-Entscheidung weiterhin nur über Sieve
- Lernen erfolgt automatisch:
- Mail aus INBOX nach INBOX.Junk verschoben → learn_spam
- Mail aus INBOX.Junk nach INBOX verschoben → learn_ham
- Kein Autolearn
- Kein Reject
- Keine Client-Plugins erforderlich
Voraussetzung
- Rspamd Bayes ist aktiv (sqlite)
- rspamc funktioniert lokal
- Junk-Ordner heißt exakt: INBOX.Junk
- IMAP MOVE oder COPY wird serverseitig ausgeführt
Prinzip
- Dovecot IMAPSieve reagiert auf IMAP MOVE/COPY
- Zielordner bestimmt Lernrichtung
- rspamc lernt exakt die betroffene Mail
IMAPSieve Plugin für IMAP aktivieren
- Korrekte Stelle für protocol imap
- vi /etc/dovecot/conf.d/20-imap.conf
protocol imap {
mail_plugins = $mail_plugins imap_sieve
}
IMAPSieve + extprograms konfigurieren
- Nur Plugin-Konfiguration, KEIN protocol-Block
- vi /etc/dovecot/conf.d/90-imapsieve.conf
plugin {
sieve_plugins = sieve_imapsieve sieve_extprograms
sieve_pipe_bin_dir = /usr/bin
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
}
Lernskripte definieren
- SPAM lernen
- INBOX → INBOX.Junk
- vi /var/lib/dovecot/sieve/learn-spam.sieve
require ["vnd.dovecot.pipe", "copy", "imapsieve"]; pipe :copy "rspamc" ["learn_spam"];
- HAM lernen
- INBOX.Junk → INBOX
- vi /var/lib/dovecot/sieve/learn-ham.sieve
require ["vnd.dovecot.pipe", "copy", "imapsieve"]; pipe :copy "rspamc" ["learn_ham"];
Lernskripte an Zielordner binden
- MOVE und COPY explizit erlauben
- vi /etc/dovecot/conf.d/90-imapsieve-learn.conf
plugin {
imapsieve_mailbox1_name = INBOX.Junk
imapsieve_mailbox1_causes = COPY MOVE
imapsieve_mailbox1_before = file:/var/lib/dovecot/sieve/learn-spam.sieve
imapsieve_mailbox2_name = INBOX
imapsieve_mailbox2_causes = COPY MOVE
imapsieve_mailbox2_before = file:/var/lib/dovecot/sieve/learn-ham.sieve
}
Sieve-Skripte kompilieren
- sievec /var/lib/dovecot/sieve/learn-spam.sieve
- sievec /var/lib/dovecot/sieve/learn-ham.sieve
Rechte setzen
- chown -R dovecot:dovecot /var/lib/dovecot/sieve
- chmod 750 /var/lib/dovecot/sieve
Dienste neu starten
- systemctl restart dovecot
- systemctl restart rspamd
Funktionstest
- Spam aus INBOX nach INBOX.Junk verschieben
- rspamc stat
- Ham aus INBOX.Junk nach INBOX verschieben
- rspamc stat
Wichtige Hinweise
- Lernen erfolgt nur bei IMAP MOVE oder COPY
- Automatische serverseitige Sieve-Filter lösen kein Lernen aus
- Jede Mail wird genau einmal gelernt
- Bayes benötigt signifikant mehr HAM als SPAM
- Keywords bleiben deterministisch führend
Merksatz
- In Junk schieben = SPAM lernen
- Aus Junk holen = HAM lernen
- Admin entscheidet, Bayes passt sich an