Mail-Archiv

    Alle versendeten E-Mails im Admin archivieren und durchsuchen

    Überblick

    Das Plugin Mail-Archiv archiviert automatisch alle ausgehenden E-Mails des Shopware-Shops. Es klinkt sich in den Shopware-E-Mail-Versand ein und speichert Empfänger, Absender, Betreff, Datum, Versandstatus und den vollständigen HTML-Inhalt jeder Mail.

    Im Admin steht ein durchsuchbares Mail-Archiv bereit, das alle archivierten Mails mit HTML-Vorschau zugänglich macht. Eine konfigurierbare Aufbewahrungsdauer und ein Scheduled Task sorgen für automatische Bereinigung alter Einträge.

    Aktuelle Version: 1.0.0

    Das Plugin verfügt über vollständige Lifecycle-Methoden: install, update, activate, deactivate und uninstall.

    Systemvoraussetzungen

  1. Shopware 6.7 oder höher
  2. PHP 8.1 oder höher
  3. MySQL 8.0 oder höher
  4. Installation

  5. 1.Plugin über den Shopware Plugin-Manager installieren oder manuell in custom/plugins/BronnMailArchive ablegen
  6. 2.Plugin im Plugin-Manager aktivieren
  7. 3.Cache leeren:
  8. php bin/console cache:clear
  9. 4.Datenbank-Migrationen werden automatisch bei der Installation ausgeführt
  10. Nach der Aktivierung beginnt das Archivieren sofort. Bereits versendete E-Mails vor der Aktivierung werden nicht nachträglich archiviert.

    Konfiguration

    Die Plugin-Konfiguration befindet sich unter Erweiterungen > Meine Erweiterungen > Bronn Mail-Archiv > Konfiguration (config.xml).

    Allgemeine Einstellungen:

  11. **Plugin aktiv** (`BronnMailArchive.config.active`, Typ: `bool`, Standard: `true`): Aktiviert oder deaktiviert die Archivierung.
  12. **Aufbewahrungsdauer in Tagen** (`BronnMailArchive.config.retentionDays`, Typ: `int`, Standard: `90`): Mails älter als dieser Wert werden automatisch gelöscht. 0 = unbegrenzte Aufbewahrung.
  13. **Maximale Archivgröße (Einträge)** (`BronnMailArchive.config.maxEntries`, Typ: `int`, Standard: `0`): Begrenzt die Gesamtanzahl der Archiveinträge. 0 = unbegrenzt.
  14. Filterung:

  15. **E-Mail-Templates ausschließen** (`BronnMailArchive.config.excludedTemplates`, Typ: `text`): Kommagetrennte Liste von Template-Technischen-Namen, die nicht archiviert werden sollen. Beispiel: `customer.group.registration.accepted`.
  16. **Nur eigene Domains archivieren** (`BronnMailArchive.config.ownDomainsOnly`, Typ: `bool`, Standard: `false`): Wenn aktiv, werden nur Mails an E-Mail-Adressen mit den konfigurierten Shop-Domains archiviert.
  17. Funktionen

    Automatische Archivierung

    Der MailArchiveSubscriber reagiert auf das Shopware-Event MailBeforeSendEvent. Vor jeder ausgehenden Mail werden Empfänger, Absender, Betreff, Template-Name, verknüpfte Order-ID (falls vorhanden) und der gerenderte HTML-Inhalt in der Tabelle bronn_mail_archive gespeichert.

    Durchsuchbares Admin-Archiv

    Im Admin-Menü unter Einstellungen > Mail-Archiv steht eine sortier- und filterbare Tabelle aller archivierten Mails. Filter: Empfänger-E-Mail, Betreff, Template-Name, Zeitraum, Versandstatus.

    HTML-Vorschau

    Ein Klick auf einen Archiveintrag öffnet ein Admin-Panel mit der vollständigen HTML-Vorschau der E-Mail, inklusive aller Formatierungen.

    Automatische Bereinigung

    Ein Scheduled Task (BronnMailArchiveCleanupTask) läuft täglich und löscht Einträge, die älter als retentionDays sind.

    Flow Builder Mail-Log

    Flow-Builder-Mails werden mit dem Flow-Namen und dem auslösenden Event gespeichert, sodass nachvollzogen werden kann, welcher Flow welche Mail ausgelöst hat.

    Events & Hooks

    Das Plugin reagiert auf folgende Shopware-Events:

  18. **`MailBeforeSendEvent`** (`Shopware\Core\Content\Mail\Service\MailBeforeSendEvent`) — Wird vor jeder ausgehenden Mail ausgelöst. Das Plugin liest hier Empfänger, Betreff und Inhalt aus und speichert sie im Archiv.
  19. Das Plugin löst selbst keine eigenen Events aus.

    Datenbank-Tabellen

    Das Plugin erstellt folgende Datenbank-Tabellen:

    | Tabelle | Beschreibung |

    |---|---|

    | bronn_mail_archive | Archivierte Mails mit allen Metadaten und HTML-Inhalt |

    Felder der `bronn_mail_archive`-Tabelle:

  20. `id` (UUID) — Primärschlüssel
  21. `recipient` (VARCHAR 255) — Empfänger-E-Mail
  22. `sender` (VARCHAR 255) — Absender-E-Mail
  23. `subject` (VARCHAR 500) — Betreff
  24. `template_name` (VARCHAR 255) — Technischer Name des E-Mail-Templates
  25. `flow_name` (VARCHAR 255, nullable) — Name des auslösenden Flows
  26. `html_content` (LONGTEXT) — Gerenderter HTML-Inhalt
  27. `order_id` (BINARY 16, nullable) — Verknüpfte Bestellungs-ID
  28. `sales_channel_id` (BINARY 16) — Verkaufskanal
  29. `status` (VARCHAR 50) — Versandstatus: `sent`, `failed`
  30. `created_at` (DATETIME) — Archivierungszeitpunkt
  31. Admin-Integration

    Das Plugin registriert ein eigenes Admin-Modul bronn-mail-archive unter dem Menüpunkt Einstellungen > Mail-Archiv:

    Seiten:

  32. bronn-mail-archive-listÜbersicht aller archivierten Mails mit Filter und Suche
  33. bronn-mail-archive-detailDetailansicht mit HTML-Vorschau
  34. Filteroptionen in der Liste:

  35. Freitextsuche über Empfänger und Betreff
  36. Filter nach Template-Name
  37. Zeitraum-Filter (Datepicker von/bis)
  38. Filter nach Versandstatus
  39. Scheduled Tasks

  40. **`bronn_mail_archive.cleanup`** (`BronnMailArchive\ScheduledTask\MailArchiveCleanupTask`): Wird täglich ausgeführt (Intervall: 86400 Sekunden). Löscht Archiveinträge, die älter als `retentionDays` sind. Der zugehörige Handler ist `MailArchiveCleanupTaskHandler`.
  41. Kompatibilität

  42. Kompatibel mit allen Plugins der Bronner B2B Suite
  43. Archiviert auch Mails aus Flow-Builder-Aktionen anderer Plugins
  44. Kompatibel mit Standard-Shopware-Themes
  45. Getestet mit Shopware 6.7.x
  46. Unterstützt Multi-Sales-Channel
  47. FAQ