Rspamd Bayes lernen durch Verschieben
Zur Navigation springen
Zur Suche springen
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
# SPAM lernen: bewusst nach Junk verschieben
imapsieve_mailbox1_name = Junk
imapsieve_mailbox1_causes = COPY MOVE
imapsieve_mailbox1_before = file:/var/lib/dovecot/sieve/report-spam.sieve
# HAM lernen: bewusst aus Junk zurück in INBOX
imapsieve_mailbox2_name = INBOX
imapsieve_mailbox2_from = Junk
imapsieve_mailbox2_causes = COPY MOVE
imapsieve_mailbox2_before = file:/var/lib/dovecot/sieve/report-ham.sieve
}
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
}
Dienste neu starten
- systemctl restart dovecot
- systemctl restart rspamd
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