MailPoet: Export der Abonnentenliste komplett sperren

MailPoet erlaubt Benutzern mit der Berechtigung zur Abonnentenverwaltung standardmäßig auch den Export der gesamten Abonnentenliste. Eine eigene Berechtigung nur für den Export gibt es nicht.

Wenn Mitarbeiter MailPoet weiterhin normal verwenden dürfen, die Abonnentenliste aber keinesfalls als CSV/XLSX herunterladen sollen, reicht es daher nicht, ihnen eine WordPress- oder MailPoet-Berechtigung zu entziehen.

Ziel

  • Abonnenten können weiterhin angesehen und verwaltet werden.
  • Import bleibt möglich.
  • Der Export-Button wird komplett entfernt.
  • Ein direkter Aufruf der Exportseite funktioniert nicht.
  • Auch ein manuell ausgelöster Export-Request wird serverseitig blockiert.
  • Bereits bekannte MailPoet-Downloadlinks für Subscriber-Exporte funktionieren nicht.
  • Die Sperre gilt für alle Benutzerrollen, auch für Administratoren.

Hintergrund

In der geprüften MailPoet-Version läuft der Export über mehrere getrennte Schritte:

  • mailpoet-export – Export-Oberfläche im Backend
  • ImportExport::processExport() – erzeugt den Export
  • export_download / subscriber_export – liefert die fertige Exportdatei aus

MailPoet prüft dabei nur die allgemeine Berechtigung manage_subscribers. Diese Berechtigung brauchen Benutzer aber auch für die normale Abonnentenverwaltung. Sie kann daher nicht einfach entzogen werden.

Lösung

Ein eigenes MU-Plugin sperrt ausschließlich den Subscriber-Export. MailPoet selbst wird nicht verändert.

/wp-content/mu-plugins/i2-mailpoet-export-sperre.php

Das MU-Plugin schützt drei Stellen:

  1. Export-Button entfernen
    Der Button „Exportieren“ auf der Seite MailPoet → Abonnenten wird per Admin-JavaScript gezielt entfernt.
    Die Buttons „Neuen Abonnenten hinzufügen“ und „Importieren“ bleiben erhalten.
  2. Export-Erzeugung blockieren
    Der eigentliche MailPoet-Request zur Erstellung einer CSV- oder XLSX-Datei wird serverseitig abgefangen.
    Dadurch reicht es nicht, nur den versteckten Request manuell nachzubauen.
  3. Download blockieren
    Auch die MailPoet-Route für den Download einer bereits erzeugten Subscriber-Exportdatei wird gesperrt.

MU-Plugin

Die Datei einfach per FTP/Plesk hier ablegen:

/wp-content/mu-plugins/i2-mailpoet-export-sperre.php

Wichtig: Die Datei gehört in mu-plugins und nicht in den normalen Plugin-Ordner. Dadurch kann die Export-Sperre nicht versehentlich über die WordPress-Pluginverwaltung deaktiviert werden.

Wenn ein Export später tatsächlich benötigt wird, zum Beispiel für den Wechsel zu einem anderen Newsletter-System, die Datei vorübergehend aus mu-plugins entfernen bzw. umbenennen.

Wichtig

Nur den Export-Button per CSS oder JavaScript auszublenden wäre keine ausreichende Sicherung.
Der Export könnte sonst weiterhin über den direkten Request ausgelöst werden.

/**
 * ============================================================
 * FARGO-SICHERUNG – Weil Benutzer.
 * ============================================================
 */

Die eigentliche Sicherheit liegt daher immer in der serverseitigen Sperre. Das Entfernen des Buttons sorgt nur dafür, dass die nicht verfügbare Funktion im Backend gar nicht erst angeboten wird.

Nicht betroffen

  • Abonnentenverwaltung
  • MailPoet-Formulare
  • Newsletter-Versand
  • Listen und Segmente
  • Abonnenten-Import
  • MailPoet-PHP-API
  • WooCommerce-Integrationen
  • Statistik-Exporte

Spätere Migration

Soll die Abonnentenliste später doch exportiert werden, zum Beispiel beim Wechsel zu einem anderen Newsletter-System, muss das MU-Plugin lediglich vorübergehend entfernt oder umbenannt werden.

Danach steht der normale MailPoet-Export wieder zur Verfügung.

Test nach Installation

  1. MailPoet → Abonnenten öffnen.
  2. Prüfen, ob der Button „Exportieren“ verschwunden ist.
  3. Prüfen, ob „Neuen Abonnenten hinzufügen“ und „Importieren“ weiterhin vorhanden sind.
  4. Direkt /wp-admin/admin.php?page=mailpoet-export aufrufen und prüfen,
    dass kein Export möglich ist.
  5. Normale Abonnentenverwaltung und Import kurz testen.

Grund für die Sperre

Die Maßnahme schützt vor dem einfachen Mitnehmen der vollständigen Kunden- bzw. Abonnentenliste durch Mitarbeiter mit Backend-Zugang. Auch Benutzer, die MailPoet im Alltag verwalten dürfen, erhalten dadurch keine Möglichkeit, die gesamte Liste auf einmal herunterzuladen.