2 Aktionen
Ralf Warmuth edited this page 2025-11-20 22:58:19 +01:00

Aktionen

Aktionen definieren, was mit E-Mails passiert, die die Filterkriterien erfüllen. Es gibt fünf verschiedene Aktionstypen.

1. Verschieben (move)

Verschiebt die E-Mail in einen anderen Ordner.

action:
  type: "move"
  target_folder: "INBOX.Important"
  max_retries: 3  # Optional: Anzahl Wiederholungsversuche bei Fehler

Parameter

Parameter Typ Erforderlich Beschreibung
target_folder String Ja Zielordner
max_retries Integer Nein Anzahl Wiederholungsversuche bei Fehler (default: 0)

Beispiel

filters:
  - name: "Wichtige Mails verschieben"
    criteria:
      from: "boss@company.com"
    action:
      type: "move"
      target_folder: "INBOX.Important"

2. Löschen (delete)

Hinweis: E-Mails werden in den konfigurierten trash_folder verschoben (nicht wirklich gelöscht).

action:
  type: "delete"
  max_retries: 3  # Optional: Anzahl Wiederholungsversuche bei Fehler

Die E-Mail wird in den trash_folder des Accounts verschoben (z.B. "Trash" oder "[Gmail]/Trash"). Falls kein trash_folder konfiguriert ist, wird die E-Mail wirklich gelöscht.

Parameter

Parameter Typ Erforderlich Beschreibung
max_retries Integer Nein Anzahl Wiederholungsversuche bei Fehler (default: 0)

Beispiel

filters:
  - name: "Spam löschen"
    criteria:
      from: "spam@evil.com"
    action:
      type: "delete"

3. Weiterleiten (forward)

Hinweis: Benötigt SMTP-Konfiguration im Account.

action:
  type: "forward"
  to: "recipient@example.com"  # oder Liste: ["user1@example.com", "user2@example.com"]
  subject_prefix: "[Forwarded] "  # Optional: Präfix für Betreff
  max_retries: 3  # Optional: Anzahl Wiederholungsversuche bei Fehler

Die E-Mail wird als Weiterleitung mit Original-Body und Anhängen gesendet.

Parameter

Parameter Typ Erforderlich Beschreibung
to String/Liste Ja Empfänger-Adresse(n)
subject_prefix String Nein Präfix für Betreff (default: leer)
max_retries Integer Nein Anzahl Wiederholungsversuche bei Fehler (default: 0)

Beispiel

filters:
  - name: "Wichtige Mails weiterleiten"
    criteria:
      from: "boss@company.com"
    action:
      type: "forward"
      to: "assistant@company.com"
      subject_prefix: "[Forwarded] "

4. Antworten (reply)

Hinweis: Benötigt SMTP-Konfiguration im Account.

action:
  type: "reply"
  template: "templates/reply.txt"  # Pfad zur Template-Datei
  subject: "Re: {subject}"  # Optional: Betreff-Template
  max_retries: 3  # Optional: Anzahl Wiederholungsversuche bei Fehler

Die Antwort wird automatisch mit In-Reply-To und References Headern versehen.

Parameter

Parameter Typ Erforderlich Beschreibung
template String Ja Pfad zur Template-Datei
subject String Nein Betreff-Template (default: "Re: {subject}")
max_retries Integer Nein Anzahl Wiederholungsversuche bei Fehler (default: 0)

Template-Variablen

Folgende Variablen können in Templates verwendet werden:

  • {from}: Absender-Adresse
  • {to}: Empfänger-Adresse
  • {subject}: Betreff
  • {body_text}: Text-Body
  • {body_html}: HTML-Body
  • {date}: Datum
  • {uid}: E-Mail-UID
  • {cc}, {bcc}: CC/BCC-Adressen

Beispiel-Template (templates/reply.txt)

Hallo {from},

Vielen Dank für Ihre Nachricht vom {date}.

Betreff: {subject}

Mit freundlichen Grüßen
Mail-Filter System

Beispiel

filters:
  - name: "Auto-Antwort auf Support-Tickets"
    criteria:
      from: "support@example.com"
      subject_contains: "ticket"
    action:
      type: "reply"
      template: "templates/reply.txt"
      subject: "Re: {subject}"

5. Externes Script (script)

Hinweis: Scripts müssen in der script_whitelist in general konfiguriert sein (oder Whitelist ist leer = alle erlaubt).

action:
  type: "script"
  path: "scripts/process.sh"  # Absoluter oder relativer Pfad
  args: ["{from}", "{subject}"]  # Optional: Argumente für Script
  timeout: 30  # Optional: Timeout in Sekunden (Standard: 30)
  max_retries: 1  # Optional: Anzahl Wiederholungsversuche bei Fehler

Parameter

Parameter Typ Erforderlich Beschreibung
path String Ja Pfad zum Script (absolut oder relativ)
args Liste Nein Liste von Argumenten für das Script (können Template-Variablen enthalten)
timeout Integer Nein Timeout in Sekunden (default: 30)
max_retries Integer Nein Anzahl Wiederholungsversuche bei Fehler (default: 0)

Script-Umgebungsvariablen

Folgende Umgebungsvariablen werden dem Script zur Verfügung gestellt:

  • MAIL_FROM, MAIL_TO, MAIL_CC, MAIL_BCC: Adressen
  • MAIL_SUBJECT: Betreff
  • MAIL_BODY_TEXT, MAIL_BODY_HTML: Body-Inhalt
  • MAIL_DATE: Datum
  • MAIL_UID: E-Mail-UID
  • MAIL_SIZE: Größe in Bytes
  • MAIL_ATTACHMENT_PATHS: Komma-getrennte Liste von Anhang-Pfaden
  • MAIL_ATTACHMENT_1_PATH, MAIL_ATTACHMENT_2_PATH, etc.: Einzelne Anhang-Pfade
  • MAIL_ATTACHMENT_1_NAME, MAIL_ATTACHMENT_2_NAME, etc.: Anhang-Namen
  • MAIL_ACCOUNT: Account-Name
  • MAIL_FOLDER: Ordner-Name
  • MAIL_HEADERS_JSON: Alle Header als JSON

Script-Sicherheit

Scripts werden nur ausgeführt, wenn:

  • Der Script-Pfad in der script_whitelist in general steht, ODER
  • Die script_whitelist leer ist (alle Scripts erlaubt)

Beispiel für Whitelist:

general:
  script_whitelist:
    - "scripts/process_report.sh"
    - "scripts/backup.sh"
    - "/usr/local/bin/custom_script.sh"

Beispiel

filters:
  - name: "Reports mit Anhängen verarbeiten"
    criteria:
      from: "reports@company.com"
      has_attachment: true
    save_attachments: true
    attachment_directory: "attachments/work/reports"
    action:
      type: "script"
      path: "scripts/process_report.sh"
      timeout: 60
      max_retries: 1

Weitere Informationen