mailtrain v2 installieren und konfigurieren

Ein DSGVO-konformes Newsletter-Tool zum selber hosten

Hinweis
Dieses Tutorial wird kontinuierlich weiterentwickelt und erhebt keinen Anspruch auf Vollständigkeit.

Die Suche nach produktiv einsetzbaren Lösungen in der Open-Source-Welt ist oft herausfordernd. Ein Beispiel hierfür ist die DSGVO-konforme Software mailtrain, die du auf deinem eigenen Server betreiben kannst. Rein technisch betrachtet kann das Tool als gut ausgereift bezeichnet werden. Allerdings hat auch diese Software – wie leider so viele Open-Source-Tools – immer wieder mit den gleichen Herausforderungen zu kämpfen:

All das sorgt dafür, dass die Software auch weiterhin ein Nischen-Dasein fristet und momentan nicht aktiv weiterentwickelt wird. Beim Durchlesen einiger Git-Issues habe ich zudem herausgefunden, dass die Software primär auch von NGOs verwendet wird. Da ich ebenfalls aktiv für eine NGO arbeite (Gemeinwohl-Ökonomie Bewegung), möchte ich mit diesem Blogpost meinen Beitrag dazu leisten, die Dokumentation der Software zu verbessern, sodass du ihre Funktionsweise verstehst und sie anschließend richtig konfigurieren kannst. Mein Fokus liegt hierbei auf dem Praxisbezug und ich erhebe keinen Anspruch auf Vollständigkeit. Auch unterstütze ich dich gerne bei der Einrichtung der Software.

* * *

Inhaltsverzeichnis

Was mailtrain dir bietet
Die Komponenten von mailtrain
Was du vorab wissen solltest
    Die Bedeutung der drei Domains
    LDAP-Login
    Konfigurationsdateien
Installation von mailtrain
    Abhängigkeiten
    Manuelle Installation mit welder-Script
    Installation mit Docker Compose
Überblick über Mailtrain
    Erklärung der Begriffe im Menü
        Listen
        Kanäle
        Vorlagen
        Kampagnen
        Berichte
        Administration
Tipps und Anleitungen aus der Praxis
    Bounce-Mails automatisiert verarbeiten
    Geteilte Ressourcen pro Benutzer anzeigen lassen
    Übersetzungen anpassen
Das Rollen- und Berechtigungskonzept
    Rollen
    Namensräume
        Beispiel für Namensräume
        Zuweisen von Namensräumen

Ich möchte mailtrain in meinem Unternehmen einsetzen und benötige dabei Unterstützung
Weiterführende Links

* * *

Hinweis
Dieser Artikel bezieht sich auf die aktuelle Version v2, die bei GitHub unter dieser URL heruntergeladen werden kann, nicht auf einen offiziellen Release.

Was mailtrain dir bietet

  • Flexible Abonnent:innen-Verwaltung mit benutzerdefinierten Feldern und Import/Export-Funktion für Abonnent:innen
  • Segmentieren von Abonnent:innen-Listen
  • E-Mail-Vorlagen (auch MJML-basierte Vorlagen)
  • Drei verschiedene WYSIWYG-Editoren (GrapesJS, Mosaico und CKEditor 4)
  • Komplett benutzerdefinierbare Formulare
  • Benutzerdefinierte Auswertungen (Reports)
  • Automatisierung (getriggerte bzw. RSS-gesteuerte Kampagnen)
    • Getriggert: Kampagnen, die erst nach einem bestimmten Ereignis bzw. einer bestimmten Zeit getriggert werden (Marketing-Automation)
    • RSS-gesteuert: Sobald ein neuer Eintrag in einem RSS-Feed auftaucht, erstellt und versendet mailtrain ein neues Mailing mit dessen Inhalt
  • Umfangreiche Statistiken (Mail erfolgreich zugestellt, aus Liste ausgetragen, Link(s) geklickt, Zustellung fehlgeschlagen, usw.)
  • Mehrbenutzerfähigkeit durch feingranulare Benutzerberechtigungen und Namensräume
  • Flexibles Freigeben von Ressourcen
  • GPG-Verschlüsselung
    • Sofern du in deiner Abonnent:innenliste ein benutzerdefiniertes Feld für den Upload von öffentlichen GPG-Schlüsseln hinterlegt hast, können entsprechende Abonnenten die Nachrichten auch verschlüsselt erhalten.
  • Hierarchische Namensräume (in erster Linie relevant für Unternehmen)
  • Eingebauter Zone-MTA für quasi konfigurationsfreie Versandeinstellungen für E-Mails
  • API (REST)
* * *

Die Komponenten von mailtrain

Mailtrain besteht aus folgenden Komponenten:

Komponente Mindestanforderung Zweck
MySQL bzw. MariaDB MySQL (v8+) bzw. MariaDB (v10+) Zentraler Datenspeicherort
Node.js Node.js (v14+) Front- und Backend von mailtrain
Redis unbekannt Session-Caching: so kann Mailtrain statt einem bis zu 5 Prozesse für den Mailversand starten.
Gerade bei vielen Abonnent:innen wird das den Mailversand signifikant beschleunigen, erhöht allerdings den Arbeitsspeicherbedarf um ca. 250MB.
MongoDB unbekannt Wird nur benötigt, wenn der integrierte ZoneMTA verwendet wird.
* * *

Was du vorab wissen solltest

Die Bedeutung der drei Domains

Mailtrain benötigt drei Domains, die alle einem bestimmten Zweck dienen. Der interne Node.js Webserver stellt den jeweiligen Dienst dann unter dem angegebenen Port bereit:

Scope Port Zweck Empfehlung für Domainnamen
trusted 3000 Weboberfläche von mailtrain und Verwaltung von Newslettern und Abonnent:innen mailtrain.meinedomain.de
sandbox 3003 Auslieferung der WYSIWYG-Editoren für die Newsletter-Inhalte sbox-mailtrain.meinedomain.de
public 3004 Auslieferung von Formularen und Nachrichtenarchiv newsletter.meinedomain.de

LDAP-Login

Damit der LDAP-Login funktioniert, ist die zusätzliche Installation des Node.js Moduls ldapjs oder ldapauth notwendig. Welches der beiden du nutzt bleibt dir überlassen. Wichtig ist nur, dass mindestens eines der beiden Module manuell nachinstalliert wird und du die Konfiguration entsprechend anpasst, wenn du dich über ein LDAP-Verzeichnis einloggen möchtest. In beiden Beispielen nutze ich ldapauth.

Außerdem werden – abweichend zu der Vermutung, die man beim Lesen der Beschreibung in der Konfigurationsdatei bekommt – die Inhalte der LDAP-Felder nameTag und mailTag leider nicht in die mailtrain-Benutzerdatenbank übernommen. Lediglich das Feld, welches unter uidTag eingetragen ist, wird in das Feld für den Benutzernamen übernommen.

Warnung
Sobald der Login über LDAP aktiviert ist, funktioniert die lokale Authentifizierung nicht mehr. Da das lokale Administrator-Konto admin allerdings von Haus aus das unsichere Passwort test verwendet, solltest du dieses direkt nach der Installation ändern.

Wichtig zu wissen ist auch, dass der admin-Account bei Nutzung des lokalen Authentifizierungsweges nicht die gleichen Berechtigungen besitzt wie ein LDAP-Account, dem die Rolle "Global Master" zugewiesen wurde.

Konfigurationsdateien

Die Konfiguration besteht aus einer bzw. mehreren yaml-Dateien. Diese liegen alle im Verzeichnis mailtrain/server/config. Dabei enthält die Datei default.yaml alle Standardeinstellungen. Die Funktion der einzelnen Konfigurationsparameter sind jeweils mit Kommentaren in der Datei beschrieben.

Startest du mailtrain nun mit einem Environment-Parameter (z. B. NODE_ENV="production"), wird die entsprechend benannte Datei (production.yaml) im oben genannten Konfigurations-Verzeichnis ausgelesen, sofern sie vorhanden ist. Diese überschreibt bzw. ergänzt daraufhin die Angaben aus der default.yaml. So kannst du mit nur einer Installation verschiedene Umgebungen bereitstellen.

Beispiel zum Start der Software mit Standardeinstellungen:

$NVM_BIN/node index.js

Beispiel zum Start der Software mit den Einstellungen aus der production.yaml:

export NODE_ENV="production" ; $NVM_BIN/node index.js

Beispiel zum Start der Software mit den Einstellungen aus der development.yaml:

export NODE_ENV="development" ; $NVM_BIN/node index.js
* * *

Installation von mailtrain

Auch wenn es sicherlich noch weitere Installationswege gibt, konzentriere ich mich in diesem Beitrag auf die Installation mittels docker-compose und auf die manuelle Installation.

Für Letztere nutze ich ein selbst geschriebenes Script, welches du beliebig anpassen und erweitern kannst. Es nutzt welder, eine Software für das Konfigurationsmanagement (CM). Ich habe mich dafür entschieden, weil welder eine sehr niedrige Einstiegsschwelle bietet und leicht verständlich ist. Außerdem wird die Software unter einer Open-Source-Lizenz aktiv von einem Mitglied der Gemeinwohl-Ökonomie entwickelt.

Ich verwende für beide Installationswege einen bereits installierten und funktionsfähigen Reverse-Proxy (Apache2 bzw. nginx), der sich um SSL-Zertifikate und Domains kümmert. Prinzipiell bringt mailtrain einen eigenen Webserver auf Basis von Node.js mit und lässt sich so auch direkt und ohne Reverse-Proxy betreiben. Diesen Fall decke ich hier allerdings nicht ab.

Abhängigkeiten

Bei Installation mittels docker-compose werden alle Abhängigkeiten in eigenen Docker-Containern mitgeliefert und brauchen nicht gesondert installiert zu werden. Entscheidest du dich hingegen für die manuelle Installation, so beachte bitte, dass du die oben unter Die Komponenten von mailtrain aufgeführten Bestandteile zusätzlich installieren musst.

* * *

Manuelle Installation mit welder-Script

Warnung
Das ist kein "Fire & Forget"-Script. Du solltest wissen was du tust, wie welder funktioniert und wie deine lokale Umgebung aufgebaut ist. Das Script hilft dir dabei, ein Gefühl dafür zu bekommen, welche Schritte für die Installation notwendig sind und wird dich dabei unterstützen.

codeberg.org/SWEETGOOD/andersgood-mailtrain

* * *

Installation mit Docker Compose

Wie du Docker und Docker Compose installierst, findest du hier beschrieben (auf Englisch).
Für die Installation von mailtrain benötigst du lediglich die docker-compose.yml. Ändere darin die Werte der folgenden Parameter ab, um die Sicherheit deiner Installation zu erhöhen:

Wert Inhalt
MYSQL_ROOT_PASSWORD ein benutzerdefinierter Wert (idealerweise >16 Zeichen)
MYSQL_PASSWORD ein benutzerdefinierter Wert (idealerweise >16 Zeichen)

Außerdem rate ich dir, bei der Nutzung eines Reverse-Proxy auf der gleichen Maschine die drei Ports nur an die localhost IP-Adresse zu binden:

"3000:3000" => "127.0.0.1:3000:3000"
"3003:3003" => "127.0.0.1:3003:3003"
"3004:3004" => "127.0.0.1:3004:3004"

Mit folgenden beiden Befehlen startest du dann den mailtrain-Server:

docker-compose pull
docker-compose up -d

Mit docker-compose logs -f zeigst du dir die Log-Dateien an. Das kann hilfreich sein, um nachzusehen, ob das System korrekt hochgefahren ist. Je nach aktivierter Logging-Stufe werden hier auch alle Logeinträge angezeigt.

* * *

Überblick über Mailtrain

Sobald die Installation abgeschlossen ist, steht der erste Login an.
Sofern du LDAP als Authentifizierungsmethode aktiviert hast, beachte bitte unbedingt diesen Hinweis.

Da die Software einigermaßen komplex ist, beginnen wir mit einer Rundreise durch die Menüs.

Erklärung der Begriffe im Menü

Listen

Begriff (de) Begriff (en) URL
Listen Lists /lists

Hier verwaltest du Listen mit Abonnent:innen deiner Newsletter, importierst/exportierst Abonnent:innen, definierst zusätzliche benutzerdefinierte Felder, legst benutzerdefinierte Formulare an und unterteilst die Listen in Segmente.

Mit Hilfe der Segmentierung können Abonnent:innen-Listen auf Basis von Filterkriterien unterteilt werden. Beispielsweise kannst du so an Abonnent:innen schreiben, die das letzte Mailing gelesen haben oder sich nach einem bestimmten Zeitpunkt zu deinem Newsletter angemeldet haben. So brauchst du für ein Mailing an eine "Untergruppe" keine eigene Abonnent:innen-Liste anlegen.

Außerdem kannst du hier die Abonnent:innen-Listen (und gleichzeitig das zugehörige Abmelde-Formular) um weitere benutzerdefinierte Felder erweitern, in denen du bspw. das Geschlecht, den Wohnort oder weitere Informationen abfragst. Diese werden dann zusätzlich in der Abonnent:innen-Datenbank gespeichert.

Sämtliche Formulare kannst du ebenfalls nach deinem Gusto gestalten. Der Menüpunkt dafür befindet sich unterhalb der Listen unter /lists/forms.

Kanäle

Begriff (de) Begriff (en) URL
Kanäle Channels /channels

Dieser Begriff mag auf den ersten Blick verwirrend sein, kann aber zum besseren Verständnis einfach durch den Begriff Newsletter ersetzt werden. Hier legst du für jeden deiner (unterschiedlichen) Newsletter je einen Eintrag an. Sofern du ihn monatlich versendest, kannst du darüber dann eine neue Kampagne anlegen, ohne alle Einstellungen erneut vornehmen zu müssen.

Mit einem Kanal wird in Mailtrain also die Kombination aus einer oder mehreren Abonnent:innen-Listen/Segmenten, einer Versand-Konfiguration und einer Inhalts-Vorlage bezeichnet. Da diese für einen regelmäßigen Newsletter meist gleich bleiben, werden so alle Mailings unter einem Kanal gebündelt. Klickst du auf den Namen eines Kanals, wirst du direkt zu allen damit versendeten Kampagnen weitergeleitet und kannst oben rechts eine neue Kampagne starten, bei der die Einstellungen aus dem Kanal übernommen werden.

Vorlagen

Begriff (de) Begriff (en) URL
Vorlagen Templates /templates

Hier verwaltest du die Design- und Inhaltsvorlagen deiner Newsletter, die dann später einer Kampagne oder einem Kanal zugeordnet werden können. Zur Auswahl stehen drei verschiedene WYSIWYG-Editoren (GrapesJS, Mosaico und CKEditor 4). Außerdem hast du die Möglichkeit, MJML-Vorlagen oder normales HTML als Inhalt einzufügen.

Kampagnen

Begriff (de) Begriff (en) URL
Kampagnen Campaigns /campaigns

Hier verwaltest du all deine Mailings und die zugehörigen Statistiken. Die Mailings legst du dabei auf Basis eines Kanals (Newsletters) an (siehe Beschreibung unter "Kanäle") oder oben rechts über "Kampagne erstellen". Dabei kannst du zwischen einer regulären, einer RSS- und einer Ereignis-basierten Kampagne wählen. Die reguläre Kampagne ist dabei ein ganz normales Mailing, während die RSS-Kampagne automatisiert eine Mail verschickt, sobald ein neuer Eintrag in einem RSS-Feed auftaucht. Eine Ereignis-basierte Kampagne ist für die Automatisierung deines Marketings (Marketing-Automation) hilfreich. Auch das Duplizieren von bereits versendeten Mailings ist möglich. Für einen regelmäßigen Newsletter-Versand wirst du dich also meistens hier aufhalten und deinen nächsten Newsletter vorbereiten, gestalten und die Statistiken einsehen.

Berichte

Begriff (de) Begriff (en) URL
Berichte Reports /reports

Der Dienst stellt die Möglichkeit bereit, über benutzerdefinierte Javascript-Codeschnipsel, die auf dem Server ausgeführt werden, eigene Reports der versendeten Mailings zu generieren. Um das sich daraus ergebende Sicherheitsrisiko zu minimieren, werden die Codeschnipsel in einer chroot-Umgebung ausgeführt, was allerdings nur dann möglich ist, wenn mailtrain als root gestartet wurde. Außerdem ist ein reiner Lesezugriff auf die Datenbank notwendig, um das Sicherheitsrisiko ungewollter Aktionen und XSS-Angriffe weiter zu minimieren.

Auch wenn dieser Menüpunkt standardmäßig aktiviert ist, stellt er bei falscher Konfiguration oder fehlenden Voraussetzungen, wie einem reinen Lesezugriff auf die Datenbank, ein enormes Sicherheitsrisiko dar. Ich empfehle dir daher, in deiner Konfigurationsdatei (.yaml) den folgenden Absatz zu ergänzen, um den Dienst ganz zu deaktivieren:

reports:
  enabled: false

Original-Beschreibung auf Englisch
The whole reporting functionality can be disabled below if they are not needed and the DB cannot be properly protected. Reports rely on custom user defined Javascript snippets defined in the report template. The snippets are run on the server when generating a report. As these snippets are stored in the DB, they pose a security risk because they can help gaining access to the server if the DB cannot be properly protected (e.g. if it is shared with another application with security weaknesses).
Mailtrain mitigates this problem by running the custom Javascript snippets in a chrooted environment and under a DB user that cannot modify the database (see userRO in [mysql] above). However the chrooted environment is available only if Mailtrain is started as root. The chrooted environment still does not prevent the custom JS script in performing network operations and in generating XSS attacks as part of the report. The bottom line is that if people who are creating report templates or have write access to the DB cannot be trusted, then it's safer to switch off the reporting functionality below.

Administration

Begriff (de) Begriff (en) URL
Administration
  Benutzer
  Namensräume
  Einstellungen
  Versandeinstellungen
  Blacklist
  API
Administration
  Users
  Namespaces
  Global Settings
  Send configurations
  Blacklist
  API

/users
/namespaces
/settings
/send-configurations
/blacklist
/account/api

Hier verwaltest du Benutzer, Namensräume, Globale Einstellungen von mailtrain, Versand-Konfigurationen und die Blacklist. Schließlich kannst du hier auch die API-Endpoints einsehen und ein persönliches Access-Token dafür generieren.

* * *

Tipps und Anleitungen aus der Praxis

Bounce-Mails automatisiert verarbeiten

Eines der bequemsten Funktionen eines Newsletter-Tools ist es, dass eine Abonnent:in, an die eine Nachricht auch nach gewisser Zeit nicht zugestellt werden konnte, automatisch von der Liste entfernt wird. Auch das bietet dir mailtrain unter dem Namen "VERP-Behandlung abgewiesener Mails". Diese Funktion setzt allerdings voraus, dass du auf dem Server root-Zugriff hast und Port 25 nicht bereits anderweitig belegt ist. Sollte das bei dir nicht der Fall sein sein, kommst du leider nicht drum herum, die Bounce-Mails einzeln und händisch zu verarbeiten. Gerade bei größeren Verteilern kann das durchaus arbeitsintensiv sein.

In mailtrain selbst wird die Funktion wie folgt beschrieben:

Mailtrain kann VERP-Routing verwenden, um abgewiesene Mails zu erkennen. Dazu wird die Nachricht an den Empfänger mit einer eindeutigen VERP-Adresse für die Auslieferung von Zustellfehlern versehen, woran die Ablehnung dann erkannt wird.

Zur Aktivierung von VERP muss ein "MX"-Eintrag im DNS eingetragen werden, der auf den Mailtrain-Server zeigt. Der Betreiber des Mailtrain-Servers muss ebenfalls dafür sorgen, dass Mailtrain VERP auf Port 25 anbieten kann, was "root"-Privilegien erfordert. So kann eine Mail an "jemand@verp-hostname" von Mailtrain empfangen werden.

VERP funktioniert meist nur, wenn ein eigener Mailserver verwendet wird. Viele zentrale Anbieter von Mailversanddiensten (SES, SparkPost, Gmail etc.) entfernen VERP-Adressen aus der Nachricht.

Geteilte Ressourcen pro Benutzer anzeigen lassen

Damit du den Überblick über die geteilten Ressourcen von Benutzer:innen behältst, kannst du dir als Administrator alle geteilten Ressourcen anzeigen lassen.

Gehe dazu auf Administration => Benutzer und klicke am Ende der Zeile hinter dem Benutzernamen auf das eingerahmte Pfeilsymbol (Teilen). Daraufhin werden dir alle mit dieser Benutzer:in geteilten Ressourcen angezeigt.

Übersetzungen anpassen

Das Schöne an Open-Source-Software ist, dass du alles selbst anpassen kannst, also auch alle Sprachvariablen. Solltest du mit einer Übersetzung also nicht zufrieden sein, so kannst du diese jederzeit unter mailtrain/locales/ anpassen. Auch neue Sprachvarianten kannst du hier hinzufügen. Die Sprachdatei für Deutsch liegt beispielsweise unter de_DE/common.json.

Nachdem du deine Änderungen in der Datei gemacht hast, muss die Anwendung einmal neu gebaut werden. Führe dazu im Verzeichnis von mailtrain folgenden Befehl aus: cd client && npm run build

* * *

Das Rollen- und Berechtigungskonzept

Um das Rollen- und Berechtigungskonzept besser zu verstehen, sind ein paar Hintergrundinformationen notwendig.

Rollen

Jede Benutzer:in benötigt zwingend eine Rolle. Diese steuert die grundsätzlichen Berechtigungen in der Software.

Verwendest du LDAP für die Authentifizierung, dann steht in deiner Konfigurationsdatei (.yaml) ein Parameter, der diese Rolle standardmäßig definiert. Da der Standardwert auf master steht, empfehle ich dir, ihn auf nobody zu ändern und die Rolle nachträglich über die Weboberfläche von mailtrain und einen Benutzeraccount mit der Rolle master händisch zuzuweisen. Sonst hat jede Benutzer:in, die sich über LDAP an mailtrain anmelden kann, automatisch volle Admin-Berechtigungen. Der Parameter lautet wie folgt:

default.yaml | production.yaml

newUserRole: nobody

In der Konfigurationsdatei (default.yaml) sind ganz am Ende auch alle Rollen genau definiert. Falls du weitere Rollen hinzufügen oder bestimmte Berechtigungen anpassen möchtest, kannst du das in deiner entsprechenden Konfigurationsdatei (.yaml) tun und damit die Standardeinstellungen überschreiben:

default.yaml | production.yaml

# The section below defines the definition of roles (permissions) to be used when no "roles" section is provided
# in custom config (typically production.yaml). If you want to extend rules provided below, add corresponding rules
# in "defaultRoles" section in custom config. If you want to define roles from scratch, create "roles" section in
# the custom config.
defaultRoles:
  global:
    master:
      name: Global Master
      admin: true
      description: All permissions
      permissions: [rebuildPermissions, createJavascriptWithROAccess, displayManageUsers, manageBlacklist, manageSettings, setupAutomation]
      rootNamespaceRole: master
    campaignsAdmin:
      name: Campaigns Admin
      description: Under the namespace in which the user is located, the user has all permissions for managing lists, templates and campaigns and the permission to send to send configurations.
      permissions: [setupAutomation]
      ownNamespaceRole: campaignsAdmin
    campaignsAdminWithoutNamespace:
      name: Campaigns Admin (multiple namespaces)
      description: Has basic set of rights to setup campaigns, edit lists and templates. The particular namespaces to which it has access have to be shared individually
      permissions: [setupAutomation]
    nobody:

Die standardmäßig definierten Rollen sind:

Rolle in der Konfigurationsdatei Bezeichnung in mailtrain Beschreibung
master Global master Administrator (volle Berechtigungen)
campaignsAdmin Campaigns Admin Kampagnen-Administrator (auf einen Namensraum beschränkt)
campaignsAdminWithoutNamespace Campaigns Admin (multiple namespaces) Kampagnen-Administrator (mehrere Namensräume)
nobody None keinerlei Berechtigungen

Für eine normale Kampagnen-Ersteller:in nutzt du eine der beiden Campaigns Admin-Rollen, für die Administratoren die Global master-Rolle.

Bitte beachte, dass sich die Rollenbezeichnungen im Menü "Teilen" von den oben dargestellten Rollen unterscheiden, da diese feingranularer unterteilt sind. Mehr Details dazu findest du unter "Mehrere Namensräume".

Namensräume

Mit Namensräumen lassen sich innerhalb einer Organisation verschiedene Abteilungen hierarchisch gliedern und die zugehörigen Ressourcen (Listen, Vorlagen, Mailings, usw.) voneinander abgrenzen. Eine Benutzer:in kann entweder Mitglied eines einzelnen Namensraumes (Campaigns Admin) oder mehrerer Namensräume sein (Campaigns Admin (multiple namespaces)). Die Vorgehensweise der Freigabe unterscheidet sich je nach gewählter Option.

Dabei werden Ressourcen, die zu einem übergeordneten Namensraum gehören, nicht an die darunterliegenden Namensräume vererbt. Vielmehr hat ein Mitglied eines übergeordneten Namensraumes auf alle darunterliegenden Namensräume und Ressourcen Zugriff – natürlich nur im Rahmen seiner Rolle.

Beispiel für Namensräume

Um das zu verdeutlichen, hier ein Beispiel. Die Namensräume sehen wie folgt aus:

Die Mitglieder:innen im Namensraum…

  • Administration können auf alle darunterliegenden Ressourcen zugreifen.
  • Geschäftsleitung können ebenfalls auf alle darunterliegenden Ressourcen zugreifen.
  • Marketing sehen nur Inhalte des Namensraumes Marketing.
  • Technik sehen nur Inhalte des Namensraumes Technik.

Hinweis zu Vererbung bei Versand-Konfigurationen
Weiter oben hatte ich erwähnt, dass Ressourcen nicht "nach unten" vererbt werden können. Das hat zur Folge, dass für jeden Namensraum eine eigene Versand-Konfiguration angelegt werden muss, auch wenn diese über die gesamte mailtrain-Installation hinweg gleich wäre. Das ist leider etwas umständlich, beim Anlegen eines neuen Namensraumes allerdings auch schnell mit erledigt.

Zuweisen von Namensräumen

Wie bereits unter Rollen beschrieben, können einem Mitglied eine oder mehrere Namensräume zugewiesen werden. Da sich die Vorgehensweise für die jeweilige Zuweisungen unterscheidet, gehe ich hier näher darauf ein.

Einzelner Namensraum

Für die Zuweisung eines einzelnen Namensraumes reicht es aus, den jeweiligen Namensraum bei der gewünschten Person festzulegen. Gehe dazu unter Administration => Benutzer auf das Stift-Symbol am Ende der Zeile hinter dem Benutzernamen, um die Benutzer:in zu bearbeiten. Die zugehörige Rolle lautet dann Campaign Admin.

Mehrere Namensräume

Bei der Zuweisung mehrerer Namensräume ist zwar ebenfalls die Auswahl eines einzelnen Namensraums erforderlich (unter Administration => Benutzer am Ende der Zeile hinter dem Benutzernamen auf das Stift-Symbol (Bearbeiten) klicken), wird aber nicht verwendet. Die zugehörige Rolle lautet Campaign Admin (multiple namespaces). Ich lege mir in der Praxis für diese Benutzer:innengruppe einen eigenen Namensraum an, notwendig ist das aber nicht. Du kannst diese Person auch einfach dem Namensraum Root zuordnen.

Um der Person nun die gewünschten einzelnen Namensräume zuzuordnen, navigiere zu Administration => Namensräume. Klicke dort am Ende der Zeile hinter dem Namensraum, für den du die Person freigeben möchtest, auf das blaue Pfeilsymbol (Teilen). Gib nun den Benutzernamen in das Such-Feld ein, wähle das Ergebnis und die gewünschte Rolle aus und bestätige mit Teilen.

Bitte beachte, dass es sich bei den Rollenbezeichnungen im Menü "Teilen" nicht um die gleichen Rollen wie aus dem Menü "Benutzer" handelt. Über die Teilen-Funktion ist vielmehr eine feingranularere Berechtigungsverteilung möglich. Unter "Description" findest du eine genaue Beschreibung der jeweiligen Berechtigungen.

Wiederhole diesen Schritt nun mit allen weiteren Namensräumen, auf die die Benutzer:in Zugriff haben soll. Wenn du dir alle zugewiesenen Ressourcen einer Benutzer:in anzeigen lassen möchtest, folge dieser Beschreibung.

* * *

Ich möchte mailtrain in meinem Unternehmen einsetzen und benötige dabei Unterstützung

Ich unterstütze dich gerne bei der Einführung und Konfiguration von mailtrain in deinem Unternehmen oder auf deinem eigenen Server. Schreib mir hierzu einfach über Kontakt, per Telegram oder unten in die Kommentare eine Nachricht.

* * *
* * *

Änderungshistorie

10.04.2022, 15:00 – Beitrag erstellt
09.05.2022, 18:45 – Beitrag erweitert
16.08.2022, 16:00 – Beitrag veröffentlicht
25.09.2022, 16:00 – Fehlendes welder-Script in Codeberg-Repository ergänzt

* * *
Christian Süßenguth Christian Süßenguth @sweetgood

Hi, ich bin Inhaber der Firma SWEETGOOD. Mit dem andersGOOD Blog möchte ich auch dich für datensichere IT-Lösungen begeistern. So bringst du dein Unternehmen voran, ohne großen Konzernen deine wertvollen Daten zu liefern. Probiers mal anders!


Kommentarbereich

Die Kommentare sind für dich noch deaktiviert, da du dem Setzen von Cookies bisher nicht zugestimmt hast.
Klicke oben rechts auf "Ja, klar!" und lade die Seite neu, um die Kommentare anzuzeigen.

Seite neu laden

👾 Magst du Kekse?

Ich würde gerne Cookies setzen

Ist das OK für dich?