#pSpam
KI in Sieve-Regeln: „Ist diese Mail eine Rechnung?“ als Filterbedingung
Posteingangsregeln und das System-Sieve können ein Sprachmodell fragen und abhängig von der Antwort verschieben, markieren oder weiterleiten. Zwei Formen: eine freie Ja/Nein-Frage oder die Auswahl aus Kategorien. Genutzt wird derselbe Anbieter wie beim KI-Spamklassifizierer (Stufe 1): empfohlen ein lokales Ollama, optional OpenAI-kompatible Server, Anthropic oder Gemini. Im Webmail heißt die Bedingung „Wenn die KI erkennt …“, mit Testknopf, Vorlagen und dem Hinweis, welche Daten an welchen Anbieter gehen. ManageSieve und JMAP verstehen die Erweiterung ebenfalls. Admin: SpamGuard > Erweiterungen > KI in Regeln. Business-Funktion.
Die Zustellung wartet nie länger als das eingestellte Zeitlimit (Standard 8 Sekunden für alle KI-Fragen einer Nachricht zusammen). Bei Zeitüberschreitung, Fehler, erreichtem Limit oder abgeschalteter Funktion ist die Bedingung einfach falsch und das Skript läuft weiter: Die Mail landet dann dort, wo sie ohne die KI-Regel gelandet wäre.
1. Sieve-Syntax: :question und :category
Die Erweiterung muss per require angefordert werden. :confidence (0 bis 100) setzt die Mindestsicherheit des Modells in Prozent; ohne Angabe gilt der Standard des Admins (60). Eine Frage hat höchstens 500 Zeichen, eine Kategorienliste 2 bis 20 Einträge; die erwartete Kategorie muss in der Liste stehen. Ein unbekanntes vnd.nextxch.*-require lässt das Skript nach RFC 5228 beim Hochladen scheitern.
require ["vnd.nextxch.ai", "fileinto", "copy", "imap4flags"];
# Freie Ja/Nein-Frage
if ai :question "Ist diese Mail eine Rechnung oder Zahlungsaufforderung?" :confidence 70 {
fileinto "Buchhaltung";
stop;
}
# Auswahl aus Kategorien: wahr, wenn das Modell "Bewerbung" wählt
if ai :category ["Rechnung", "Bewerbung", "Support", "Newsletter"] "Bewerbung" {
redirect :copy "hr@firma.de";
}
# Mehrere erwartete Kategorien und Kombination mit normalen Tests
if allof (address :domain :is "from" "kunde.de",
ai :question "Ist das eine dringende Anfrage oder Beschwerde?" :confidence 75) {
addflag "\\Flagged";
}
2. Webmail: Vorlagen und Testknopf
Einstellungen > Posteingangsregeln: Bedingung „Wenn die KI erkennt …“ wählen, dann „Freie Frage“ oder „Kategorie auswählen“. Der Knopf „Testen“ schickt die Bedingung mit einer ausgewählten Nachricht an das Modell und zeigt Antwort, Konfidenz und den gesendeten Auszug.
Vorlage Bedingung Aktion
Rechnungen in Ordner Buchhaltung Frage "Ist diese Mail eine Rechnung ...?" (70 %) In Ordner "Buchhaltung"
Bewerbungen an HR weiterleiten Kategorie "Bewerbung" aus 5 Kategorien (70 %) Kopie an hr@<Ihre Domain>
Dringende Kundenmails markieren Frage "Dringende Anfrage oder Beschwerde?" (75 %) Als wichtig markieren
3. Was das Modell sieht (Beispiel mit Maskierung)
Der Auszug steht zwischen Markern und wird dem Modell ausdrücklich als nicht vertrauenswürdige Daten übergeben: Anweisungen in der Mail werden ignoriert. Die Antwort muss ein JSON-Objekt sein; nicht auswertbare Antworten zählen als „keine Antwort“.
Question: Ist diese Mail eine Rechnung?
<<<EMAIL
From: Lieferant Buchhaltung <[email@lieferant.de]>
Subject: Rechnung 2026-1042
Attachments: Rechnung-2026-1042.pdf
Body:
Sehr geehrte Damen und Herren, anbei unsere Rechnung über 1.200 EUR.
Bitte überweisen Sie auf [number] bis 17.11.2026.
EMAIL>>>
Antwort des Modells: {"answer":"yes","confidence":0.94}
Regel-Log: ai :question "Ist diese Mail eine Rechnung?" -> true (ja, 94 %, openai/llama3.2:3b)
4. Ollama lokal einrichten
Ein kleines Modell reicht für Ja/Nein- und Kategorie-Fragen. Danach im Admin unter SpamGuard > Erweiterungen bei Stufe 1 den Endpunkt eintragen und „KI in Regeln“ einschalten; der Live-Test prüft die Verbindung mit einer Beispielmail.
# Linux
curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.2:3b
curl http://127.0.0.1:11434/v1/models
# Windows (PowerShell)
winget install Ollama.Ollama
ollama pull llama3.2:3b
# Admin > SpamGuard > Erweiterungen > KI-Klassifizierer, Stufe 1:
# Anbieter: OpenAI-kompatibel · Endpunkt: http://127.0.0.1:11434/v1 · Modell: llama3.2:3b
# Admin > SpamGuard > Erweiterungen > KI in Regeln: aktivieren, speichern, Live-Test
Einstellungen, Standardwerte & Best Practices
| Einstellung / Ort | Funktion | Standardwert | Best Practice im Betrieb |
|---|---|---|---|
Welche Daten gesendet werden |
Je Frage nur: Betreff, Absender, die ersten N Zeichen des Textes (Standard 2.000) und die Namen der Anhänge. Nie der Inhalt von Anhängen, nie weitere Header, nie Empfängerlisten. | Maskierung an · Anhangsnamen an |
Maskierung eingeschaltet lassen: Dann werden E-Mail-Adressen zu [email@domain], IBANs und Telefonnummern zu [number], Links auf ihre Domain gekürzt; der Absender erscheint nur mit Namen und Domain. Das ist dieselbe Datenschutz-Logik wie beim KI-Spamklassifizierer. |
Lokal oder Cloud |
Regeln nutzen den Anbieter von Stufe 1 des KI-Klassifizierers. Lokale Endpunkte (localhost, private Netze) brauchen keine Freigabe. Cloud-Anbieter nur mit zwei Haken: der DSGVO-Zustimmung beim Klassifizierer und „Cloud-Anbieter für Regeln erlauben“. | Ollama http://127.0.0.1:11434/v1 · llama3.2:3b |
Lokal mit Ollama betreiben: Dann verlassen keine Mail-Inhalte das eigene Netz. Für Cloud brauchen Sie eine Rechtsgrundlage, einen Auftragsverarbeitungsvertrag und einen Hinweis in der Datenschutzerklärung; der Webmail-Editor zeigt den Nutzern, ob ihre Regel lokal oder in der Cloud ausgewertet wird. |
Zeitlimit und Ausfall |
Alle KI-Fragen einer Nachricht teilen sich ein Zeitbudget. Ist es aufgebraucht oder antwortet das Modell nicht, ist der Test falsch und die nächste Regel läuft. | 8.000 ms je Nachricht · max. 10 Fragen |
Günstige Tests (Absender, Betreff) vor die KI-Frage stellen: Das Modell wird nur gefragt, wenn die Regel bis dahin kommt. |
Cache: jede Nachricht nur einmal |
Antworten werden je Nachricht und Frage zwischengespeichert. Die Vorprüfung im SMTP-Dialog, die Zustellung und weitere Empfänger mit derselben Frage nutzen dieselbe Antwort. | 60 Minuten |
Eine Rundmail an 200 Kollegen mit derselben Regel kostet eine einzige Modellanfrage. |
Freigaben, Limits und Kosten |
Der Admin bestimmt, für welche Domains und Mandanten die Funktion gilt, ob das System-Sieve sie nutzen darf und wie viele Fragen je Mandant und Tag erlaubt sind (einzelne Mandanten abweichend, 0 = gesperrt). Die Tageslimits des Klassifizierers (Anfragen, Tokens, Kosten) gelten zusätzlich für die ganze Installation. | 500 Fragen je Mandant und Tag |
Die Admin-Tabelle zeigt Fragen und Kosten je Mandant für heute: Grundlage, um Cloud-Kosten weiterzuberechnen. Zähler überleben Neustarts und werden im Cluster summiert. |
Nachvollziehbarkeit |
Jede KI-Entscheidung steht im Regel-Log (Ereignis SieveAi) mit Frage, Antwort, Konfidenz, Anbieter, Cache-Treffer oder Grund für das Ausbleiben, z. B. ai :question "Rechnung?" -> true (ja, 92 %, openai/llama3.2:3b). | immer an |
Der Testknopf im Webmail und der Live-Test im Admin zeigen zusätzlich den exakten Auszug, der an das Modell ging. |
Lizenz und Upload |
Business-Funktion (auch in Enterprise und im Test). Ohne Freigabe lehnen Webmail, ManageSieve (PUTSCRIPT/CHECKSCRIPT) und JMAP (SieveScript/set, /validate) Skripte mit dem ai-Test ab; ManageSieve meldet vnd.nextxch.ai nur bei eingeschalteter Funktion in SIEVE. | aus |
Bereits gespeicherte Skripte laufen weiter, wenn die Funktion später abgeschaltet wird: Der ai-Test ist dann einfach falsch. |