Table of Contents
Verwendung
Mail Filter wird über die Kommandozeile gesteuert. Es gibt zwei Möglichkeiten, das Tool zu verwenden:
Mit Wrapper-Script (Empfohlen)
Nach der Installation des Wrappers (siehe Installation):
mail-filter run
mail-filter check
mail-filter test-connection <account-name>
Der Wrapper aktiviert automatisch das venv (falls vorhanden) und ist für systemd-Services geeignet.
Direkt mit Python
Alternativ kannst du das Tool direkt mit Python aufrufen:
python main.py run
python main.py check
python main.py test-connection <account-name>
Hinweis: Wenn du ein venv verwendest, stelle sicher, dass es aktiviert ist, oder verwende den Wrapper-Script.
Allgemeine Parameter
Alle Befehle unterstützen:
--config <pfad>: Pfad zur Konfigurationsdatei (Standard:config/config.yaml)
Beispiele:
# Standard-Konfiguration (config/config.yaml)
mail-filter run
# Externe Konfiguration (z.B. getrenntes Config-Repo)
mail-filter --config /opt/mail-filter-config/config/config.yaml run
# Alternative Konfigurationsdatei
mail-filter --config /etc/mail-filter/config.yaml check
Hinweis: Mit --config kannst du eine Konfigurationsdatei an beliebiger Stelle angeben. Die Pfade zu accounts.yaml, credentials/ und filters/ werden automatisch relativ zum Verzeichnis der config.yaml aufgelöst (siehe Konfiguration).
Befehle
Scheduler starten
Startet den Scheduler, der regelmäßig alle konfigurierten Accounts prüft.
Mit Wrapper:
mail-filter run
Direkt mit Python:
python main.py run
Zusätzliche Parameter für run:
--reprocess-all: Alle Nachrichten erneut verarbeiten (ignoriert State)--reprocess-last N: Letzte N Nachrichten erneut verarbeiten--account <name>: Nur bestimmten Account verarbeiten--folder <name>: Nur bestimmten Ordner verarbeiten--limit N: Maximale Anzahl zu verarbeitender Nachrichten--dry-run: Nur anzeigen, keine Änderungen durchführen
Einmaliger Check
Führt einen einmaligen Check durch (ohne Scheduler).
Mit Wrapper:
mail-filter check
Direkt mit Python:
python main.py check
Parameter für check:
--account <name>: Nur bestimmten Account verarbeiten (optional, wenn nicht angegeben werden alle Accounts verarbeitet)--reprocess-all: Alle Nachrichten erneut verarbeiten (ignoriert State)--reprocess-last N: Letzte N Nachrichten erneut verarbeiten--folder <name>: Nur bestimmten Ordner verarbeiten--limit N: Maximale Anzahl zu verarbeitender Nachrichten--dry-run: Nur anzeigen, keine Änderungen durchführen
Verbindung testen
Testet die IMAP-Verbindung für einen Account.
Mit Wrapper:
mail-filter test-connection <account-name>
Direkt mit Python:
python main.py test-connection <account-name>
Konfiguration validieren
Validiert die Konfigurationsdatei und alle Filterregeln.
Mit Wrapper:
# Standard-Konfiguration
mail-filter validate-config
# Externe Konfiguration
mail-filter --config /opt/mail-filter-config/config/config.yaml validate-config
Direkt mit Python:
# Standard-Konfiguration
python main.py validate-config
# Externe Konfiguration
python main.py --config /opt/mail-filter-config/config/config.yaml validate-config
Beispiele
Scheduler
Mit Wrapper:
# Scheduler starten
mail-filter run
# Alle Mails eines Accounts erneut verarbeiten
mail-filter run --reprocess-all --account work
# Letzte 100 Mails eines Accounts erneut verarbeiten
mail-filter run --reprocess-last 100 --account work
# Nur letzte 50 Mails verarbeiten
mail-filter run --limit 50
# Dry-Run für bestimmten Ordner
mail-filter run --account work --folder INBOX --dry-run
Direkt mit Python:
# Scheduler starten
python main.py run
# Alle Mails eines Accounts erneut verarbeiten
python main.py run --reprocess-all --account work
# Letzte 100 Mails eines Accounts erneut verarbeiten
python main.py run --reprocess-last 100 --account work
# Nur letzte 50 Mails verarbeiten
python main.py run --limit 50
# Dry-Run für bestimmten Ordner
python main.py run --account work --folder INBOX --dry-run
Einmaliger Check
Mit Wrapper:
# Einmaliger Check für alle Accounts
mail-filter check
# Einmaliger Check für bestimmten Account
mail-filter check --account work
# Nur letzte 100 Nachrichten verarbeiten
mail-filter check --limit 100
# Letzte 50 Nachrichten eines Accounts erneut verarbeiten
mail-filter check --account work --reprocess-last 50
# Dry-Run für bestimmten Ordner
mail-filter check --account work --folder INBOX --dry-run
# Alle Nachrichten eines Accounts erneut verarbeiten (mit Limit)
mail-filter check --account work --reprocess-all --limit 200
Direkt mit Python:
# Einmaliger Check für alle Accounts
python main.py check
# Einmaliger Check für bestimmten Account
python main.py check --account work
# Nur letzte 100 Nachrichten verarbeiten
python main.py check --limit 100
# Letzte 50 Nachrichten eines Accounts erneut verarbeiten
python main.py check --account work --reprocess-last 50
# Dry-Run für bestimmten Ordner
python main.py check --account work --folder INBOX --dry-run
# Alle Nachrichten eines Accounts erneut verarbeiten (mit Limit)
python main.py check --account work --reprocess-all --limit 200
Verbindung testen
Mit Wrapper:
# Verbindung zu einem Account testen
mail-filter test-connection work
Direkt mit Python:
# Verbindung zu einem Account testen
python main.py test-connection work
Konfiguration validieren
Mit Wrapper:
# Standard-Konfiguration validieren
mail-filter validate-config
# Alternative Konfigurationsdatei validieren
mail-filter --config config/config-test.yaml validate-config
Direkt mit Python:
# Standard-Konfiguration validieren
python main.py validate-config
# Alternative Konfigurationsdatei validieren
python main.py --config config/config-test.yaml validate-config
Statistiken zurücksetzen
Mit Wrapper:
# Alle Statistiken löschen
mail-filter reset-statistics --all --confirm
# Statistiken für heute löschen
mail-filter reset-statistics --today --confirm
# Statistiken für einen bestimmten Tag löschen
mail-filter reset-statistics --day 2024-01-15 --confirm
# Statistiken für eine bestimmte Stunde löschen
mail-filter reset-statistics --hour "2024-01-15 14:00" --confirm
# Ohne --confirm wird nur eine Warnung angezeigt
mail-filter reset-statistics --today
Direkt mit Python:
# Alle Statistiken löschen
python main.py reset-statistics --all --confirm
# Statistiken für heute löschen
python main.py reset-statistics --today --confirm
# Statistiken für einen bestimmten Tag löschen
python main.py reset-statistics --day 2024-01-15 --confirm
# Statistiken für eine bestimmte Stunde löschen
python main.py reset-statistics --hour "2024-01-15 14:00" --confirm
# Ohne --confirm wird nur eine Warnung angezeigt
python main.py reset-statistics --today
Parameter-Referenz
--limit N
Begrenzt die Anzahl der zu verarbeitenden Nachrichten. Nützlich für Tests oder wenn nur eine bestimmte Anzahl verarbeitet werden soll.
Beispiele:
python main.py check --limit 100
python main.py run --account work --limit 50
--reprocess-all
Verarbeitet alle Nachrichten erneut, unabhängig vom State. Ignoriert die State-Datenbank.
Beispiele:
python main.py check --reprocess-all --account work
python main.py run --reprocess-all --limit 200
--reprocess-last N
Verarbeitet die letzten N Nachrichten erneut.
Beispiele:
python main.py check --reprocess-last 100 --account work
python main.py run --reprocess-last 50
--account <name>
Begrenzt die Verarbeitung auf einen bestimmten Account.
Beispiele:
python main.py check --account work
python main.py run --account work --limit 50
--folder <name>
Begrenzt die Verarbeitung auf einen bestimmten Ordner.
Beispiele:
python main.py check --account work --folder INBOX
python main.py run --folder INBOX.Important --dry-run
--dry-run
Zeigt an, was passieren würde, ohne tatsächlich Änderungen vorzunehmen. Nützlich zum Testen von Filtern.
Beispiele:
python main.py check --account work --dry-run
python main.py run --folder INBOX --dry-run
--config <pfad>
Verwendet eine alternative Konfigurationsdatei. Unterstützt sowohl relative als auch absolute Pfade.
Automatische Pfadauflösung:
Wenn config_paths nicht in der config.yaml definiert sind, werden die Pfade automatisch relativ zum Verzeichnis der config.yaml aufgelöst:
accounts_file:<config-dir>/accounts.yamlcredentials_dir:<config-dir>/credentialsfilters_dir:<config-dir>/../filters
Beispiele:
# Relative Pfade (im Code-Repo)
python main.py --config config/config-test.yaml check
python main.py --config config/config-prod.yaml run
# Absolute Pfade (getrenntes Config-Repo)
python main.py --config /opt/mail-filter-config/config/config.yaml run
python main.py --config /etc/mail-filter/config.yaml check
# Mit Wrapper
mail-filter --config /opt/mail-filter-config/config/config.yaml check
Siehe auch: Konfiguration - Getrenntes Config-Repo
reset-statistics Befehl
Setzt Statistiken in der Datenbank zurück. Unterstützt verschiedene Optionen zum selektiven Löschen.
Optionen:
--all: Löscht alle Statistiken aus der Datenbank--day YYYY-MM-DD: Löscht alle Statistiken für einen bestimmten Tag (Format: YYYY-MM-DD)--hour "YYYY-MM-DD HH:00": Löscht Statistiken für eine bestimmte Stunde (Format: YYYY-MM-DD HH:00)--today: Löscht alle Statistiken für heute--confirm: Bestätigt die Löschung (ohne diese Option wird nur eine Warnung angezeigt)
Beispiele:
# Alle Statistiken löschen
python main.py reset-statistics --all --confirm
# Statistiken für heute löschen
python main.py reset-statistics --today --confirm
# Statistiken für einen bestimmten Tag löschen
python main.py reset-statistics --day 2024-01-15 --confirm
# Statistiken für eine bestimmte Stunde löschen
python main.py reset-statistics --hour "2024-01-15 14:00" --confirm
# Ohne --confirm wird nur eine Warnung angezeigt (keine Löschung)
python main.py reset-statistics --today
Hinweis: Ohne --confirm wird nur angezeigt, was gelöscht würde, ohne tatsächlich zu löschen. Dies ist eine Sicherheitsmaßnahme, um versehentliche Löschungen zu vermeiden.
Siehe auch: State-Management - Statistiken zurücksetzen
Kombination von Parametern
Parameter können kombiniert werden:
# Letzte 50 Nachrichten eines Accounts in einem bestimmten Ordner im Dry-Run-Modus
python main.py check --account work --folder INBOX --reprocess-last 50 --dry-run
# Alle Nachrichten eines Accounts mit Limit
python main.py check --account work --reprocess-all --limit 200
Weitere Informationen
- Installation - Installation und Setup
- Konfiguration - Konfiguration
- Filter - Filterregeln
- Logging - Logging und Fehlerbehebung