# E-Mail-Templates Das E-Mail-Templates-Modul verwaltet **Benachrichtigungs-Vorlagen** fuer alle Compliance-Prozesse: DSR-Bestaetigung, Einwilligungsnachweise, Datenschutzverletzungen, Vendor-Management und mehr. Es bietet einen vollstaendigen **Approval-Workflow** (Draft → Review → Approved → Published), Variablen-Substitution und eine Vorschau-Funktion. --- ## Uebersicht | Eigenschaft | Wert | |-------------|------| | **SDK-Route** | `/sdk/email-templates` | | **Backend** | `backend-compliance:8002` | | **Router-Prefix** | `/api/compliance/email-templates` | | **Paket** | Betrieb (seq 4350) | | **DB-Migration** | 027_email_templates.sql | | **Tests** | 47 Tests (`test_email_template_routes.py`) | | **Status** | 100% — Backend + Frontend | --- ## Template-Typen (20) | Typ | Kategorie | Beschreibung | |-----|-----------|--------------| | `welcome` | Allgemein | Willkommens-E-Mail | | `verification` | Allgemein | E-Mail-Verifizierung | | `password_reset` | Allgemein | Passwort zuruecksetzen | | `account_locked` | Sicherheit | Konto gesperrt | | `consent_granted` | Einwilligung | Einwilligung erteilt | | `consent_withdrawn` | Einwilligung | Einwilligung widerrufen | | `consent_reminder` | Einwilligung | Einwilligungs-Erinnerung | | `dsr_received` | DSR | Anfrage eingegangen | | `dsr_processing` | DSR | Anfrage in Bearbeitung | | `dsr_completed` | DSR | Anfrage abgeschlossen | | `dsr_rejected` | DSR | Anfrage abgelehnt | | `breach_notification` | Datenschutz | Datenschutzverletzung | | `breach_authority` | Datenschutz | Meldung an Aufsichtsbehoerde | | `vendor_assessment` | Vendor | Auftragsverarbeiter-Bewertung | | `vendor_reminder` | Vendor | Auftragsverarbeiter-Erinnerung | | `training_assigned` | Schulung | Schulung zugewiesen | | `training_reminder` | Schulung | Schulungs-Erinnerung | | `training_completed` | Schulung | Schulung abgeschlossen | | `audit_scheduled` | Audit | Audit geplant | | `audit_completed` | Audit | Audit abgeschlossen | --- ## Approval-Workflow ```mermaid graph LR A[draft] --> B[review] B --> C[approved] B --> D[rejected] D --> A C --> E[published] ``` - **Draft:** Vorlage wird erstellt/bearbeitet - **Review:** Zur Pruefung eingereicht - **Approved:** Von DSB/Compliance-Beauftragtem freigegeben - **Published:** Aktiv im System — wird fuer E-Mail-Versand verwendet - **Rejected:** Zurueck an Autor mit Begruendung --- ## API-Endpoints ### Template-Verwaltung | Methode | Pfad | Beschreibung | |---------|------|--------------| | `GET` | `/email-templates/types` | Verfuegbare Template-Typen mit Variablen | | `GET` | `/email-templates` | Alle Templates (mit letzter publizierter Version) | | `POST` | `/email-templates` | Template erstellen | | `GET` | `/email-templates/{id}` | Template-Detail | | `GET` | `/email-templates/default/{type}` | Default-Content fuer einen Typ | | `POST` | `/email-templates/initialize` | Default-Templates initialisieren (20 Typen) | ### Version-Management | Methode | Pfad | Beschreibung | |---------|------|--------------| | `GET` | `/email-templates/{id}/versions` | Versionen eines Templates | | `POST` | `/email-templates/versions` | Version erstellen | | `POST` | `/email-templates/{id}/versions` | Version fuer Template erstellen | | `GET` | `/email-templates/versions/{id}` | Version-Detail | | `PUT` | `/email-templates/versions/{id}` | Draft aktualisieren | ### Workflow-Aktionen | Methode | Pfad | Beschreibung | |---------|------|--------------| | `POST` | `/email-templates/versions/{id}/submit` | Zur Pruefung einreichen | | `POST` | `/email-templates/versions/{id}/approve` | Genehmigen | | `POST` | `/email-templates/versions/{id}/reject` | Ablehnen (mit Begruendung) | | `POST` | `/email-templates/versions/{id}/publish` | Publizieren | ### Vorschau & Test | Methode | Pfad | Beschreibung | |---------|------|--------------| | `POST` | `/email-templates/versions/{id}/preview` | Vorschau mit Test-Variablen | | `POST` | `/email-templates/versions/{id}/send-test` | Test-E-Mail senden (Simulation) | ### Einstellungen & Logs | Methode | Pfad | Beschreibung | |---------|------|--------------| | `GET` | `/email-templates/settings` | Globale Einstellungen (Branding) | | `PUT` | `/email-templates/settings` | Einstellungen speichern | | `GET` | `/email-templates/stats` | Statistiken (gesamt, publiziert, Entwuerfe) | | `GET` | `/email-templates/logs` | Send-Logs (paginiert) | --- ## Variablen Templates unterstuetzen **Mustache-Variablen** (`{{variable}}`), die beim Versand ersetzt werden: | Variable | Beschreibung | Verfuegbar in | |----------|--------------|---------------| | `{{user_name}}` | Name des Empfaengers | Alle | | `{{company_name}}` | Unternehmensname | Alle | | `{{date}}` | Aktuelles Datum | Alle | | `{{request_number}}` | DSR-Antragsnummer | DSR-Templates | | `{{request_type}}` | Art der Anfrage | DSR-Templates | | `{{deadline}}` | Bearbeitungsfrist | DSR-Templates | | `{{document_title}}` | Dokumenttitel | Consent-Templates | | `{{breach_description}}` | Vorfallbeschreibung | Breach-Templates | | `{{training_title}}` | Schulungstitel | Training-Templates | | `{{vendor_name}}` | Auftragsverarbeiter | Vendor-Templates | | `{{portal_url}}` | Link zum Portal | DSR, Consent | --- ## DB-Tabellen (Migration 027) | Tabelle | Beschreibung | |---------|--------------| | `compliance_email_templates` | Template-Definitionen (type, name, is_active) | | `compliance_email_template_versions` | Versionierter Content (subject, body_html, body_text, status) | | `compliance_email_template_approvals` | Approval-Workflow (approve/reject mit Kommentar) | | `compliance_email_send_logs` | Audit-Trail gesendeter E-Mails | | `compliance_email_template_settings` | Globale Einstellungen (Logo, Farben, Absender, Footer) | --- ## Datenmodell (Template-Version) ```json { "id": "uuid", "template_id": "uuid", "version_number": 2, "subject": "Ihre Betroffenenanfrage {{request_number}}", "body_html": "