Mailtrain Installation · 10 min read · Sep 29, 2025

So installieren Sie die Mailtrain-Newsletter-Anwendung auf CentOS 7

Mailtrain ist eine Open-Source, selbst gehostete Newsletter-Anwendung, die in Node.js geschrieben ist. Sie verwendet eine sehr beliebte Node.js-Bibliothek namens Nodemailer, um die E-Mails zu versenden. Es bietet hervorragende Automatisierung und Analysen völlig kostenlos. Sie können ganz einfach eine E-Mail-Liste mit einer Million E-Mail-Adressen mithilfe des CSV-Dateiimports erstellen oder importieren. Es unterstützt auch benutzerdefinierte Felder und Formulare. Es bietet Automatisierung durch Trigger, die spezifische Nachrichten an spezifische Benutzer senden können, wenn die Aktion ausgelöst wird. Sie können jeden E-Mail-Anbieter verwenden, um den Newsletter zu versenden, der das SMTP-Protokoll unterstützt, sowie Unterstützung für Amazon SES, ZoneMTA, SendGrid und Mailgun usw. Es bietet mehrere WYSIWYG-Editoren, um schöne Vorlagen für Newsletter zu erstellen.

In diesem Tutorial installieren wir Mailtrain zusammen mit allen erforderlichen Abhängigkeiten auf CentOS 7. Wir werden auch Nginx als Reverse-Proxy einrichten, um die Anwendung über den Standard-HTTP-Port bereitzustellen.

Anforderungen

Mailtrain benötigt mindestens 1 GB RAM. Alle erforderlichen Abhängigkeiten werden im Verlauf des Tutorials installiert. Sie benötigen eine minimale Installation von CentOS 7 mit Root-Zugriff darauf. Wenn Sie als Nicht-Root-Benutzer angemeldet sind, können Sie sudo -i ausführen, um zum Root-Benutzer zu wechseln.

Basis-System aktualisieren

Bevor Sie ein Paket installieren, wird empfohlen, die Pakete und das Repository mit dem folgenden Befehl zu aktualisieren.

yum -y update

Node.js installieren

Node.js wird von Mailtrain benötigt, da es mit Nodemailer erstellt wurde. Node.js ist eine sehr beliebte JavaScript-Laufzeitumgebung, und Nodemailer ist ein Modul für Node.js-Anwendungen zum Versenden von E-Mails.

Fügen Sie das Node.js 8.x-Repository hinzu:

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

Installieren Sie Node.js.

yum -y install nodejs

MariaDB installieren

Um die Mailtrain-Datenbank zu speichern, müssen wir MariaDB installieren. MariaDB ist ein Fork von MySQL. Installieren Sie das MariaDB-Repository in Ihr System.

nano /etc/yum.repos.d/mariadb.repo

Fügen Sie die folgenden Zeilen in die Datei ein.

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Installieren Sie nun MariaDB, indem Sie Folgendes ausführen.

yum -y install mariadb-server mariadb

Um MariaDB zu starten und zu aktivieren, dass es beim Booten gestartet wird, verwenden Sie die folgenden Befehle.

systemctl start mariadb  
systemctl enable mariadb

Führen Sie nun die folgenden Befehle aus, um Ihre MySQL- oder MariaDB-Installation zu sichern.

mysql_secure_installation

Es wird ein kleines Skript ausgeführt, das Sie auffordert, das Root-Passwort für MariaDB anzugeben. Da wir gerade MariaDB installiert haben, ist das Root-Passwort nicht gesetzt, drücken Sie einfach die Eingabetaste, um fortzufahren. Es wird Sie fragen, ob Sie ein Root-Passwort für Ihre MariaDB-Installation festlegen möchten, wählen Sie y und setzen Sie ein starkes Passwort für die Installation. Es wird Sie auch fragen, ob Sie Testdatenbanken und anonyme Benutzer entfernen möchten. Die meisten Fragen sind selbsterklärend, und Sie sollten alle Fragen mit Ja oder y beantworten.

Mailtrain benötigt zwei Datenbankbenutzer, um zu funktionieren, einen zur Verwaltung der Mailtrain-Datenbank und einen anderen zur Erstellung der Arbeitsberichte.

Um eine Datenbank zu erstellen, müssen wir uns zuerst an der MySQL-Befehlszeile anmelden. Führen Sie den folgenden Befehl dafür aus.

mysql -u root -p

Dies fordert Sie zur Eingabe des Passworts auf. Geben Sie das Root-Passwort von MySQL ein, das Sie zuvor festgelegt haben. Führen Sie nun die folgende Abfrage aus, um eine neue Datenbank für Ihre Mailtrain-Installation zu erstellen.

CREATE DATABASE mailtrain CHARACTER SET utf8 COLLATE utf8_general_ci;

Die obige Abfrage erstellt eine Datenbank mit dem Namen mailtrain. Stellen Sie sicher, dass Sie am Ende jeder Abfrage ein Semikolon verwenden, da die Abfrage immer mit einem Semikolon endet. Sobald die Datenbank erstellt ist, können Sie einen neuen Benutzer erstellen und diesem Benutzer alle Berechtigungen für die Datenbank gewähren. Es wird nicht empfohlen, den Root-Benutzer für die Datenbanken zu verwenden. Um einen neuen Datenbankbenutzer zu erstellen, führen Sie die folgende Abfrage aus.

CREATE USER 'mailtrain'@'localhost' IDENTIFIED BY 'StrongPassword';

Die obige Abfrage erstellt einen Benutzer mit dem Benutzernamen mailtrain. Sie können jeden bevorzugten Benutzernamen anstelle von mailtrain verwenden. Ersetzen Sie StrongPassword durch ein starkes Passwort. Gewähren Sie nun Ihrem Datenbankbenutzer die entsprechenden Berechtigungen für die von Ihnen erstellte Datenbank. Führen Sie den folgenden Befehl aus.

GRANT ALL PRIVILEGES ON mailtrain.* TO 'mailtrain'@'localhost';

Erstellen Sie nun einen neuen Benutzer für Mailtrain RO.

CREATE USER 'mailtrain_ro'@'localhost' IDENTIFIED BY 'StrongROPassword';

Gewähren Sie dem RO-Benutzer Lesezugriff auf die Mailtrain-Datenbank.

GRANT SELECT ON mailtrain.* TO 'mailtrain_ro'@'localhost';

Führen Sie nun den folgenden Befehl aus, um die Änderungen an den Datenbankberechtigungen sofort anzuwenden.

FLUSH PRIVILEGES;

Verlassen Sie die MySQL-Eingabeaufforderung mit dem Befehl exit.

EXIT;

Abhängigkeiten installieren

Mailtrain benötigt noch einige weitere Abhängigkeiten, um zu funktionieren. Installieren Sie die Abhängigkeiten, indem Sie Folgendes ausführen:

yum -y install ImageMagick git python redis bind-utils gcc-c++ make

ImageMagick ist ein Tool zur Verarbeitung von Bitmap-Bildern, und Git wird verwendet, um das Anwendungsprojekt-Repository zu klonen. Redis ist eine sehr beliebte Sitzungscache-Anwendung, und Python, bind-utils, gcc-c++ und make werden verwendet, um die Anwendungsdateien zu kompilieren.

Starten Sie Redis und aktivieren Sie es, damit es automatisch startet:

systemctl start redis  
systemctl enable redis

Mailtrain herunterladen und installieren

Klonen Sie die Mailtrain-Installationsdateien mit Git.

git clone git://github.com/Mailtrain-org/mailtrain.git /opt/mailtrain

Erstellen Sie einen neuen Mailtrain-Benutzer, um den Mailtrain-Daemon auszuführen. Dies stellt sicher, dass Mailtrain in einer isolierten Umgebung ausgeführt wird.

adduser mailtrain -d /opt/mailtrain

Der obige Befehl erstellt einen neuen Benutzer mailtrain, und /opt/mailtrain wird als Home-Verzeichnis verwendet.

Wechseln Sie in das Mailtrain-Verzeichnis, indem Sie Folgendes ausführen:

cd /opt/mailtrain

Bevor Sie fortfahren, sollten Sie eine zufällige Zeichenfolge generieren, die zur Verschlüsselung der Sitzungsdaten verwendet wird. Um die zufällige Zeichenfolge zu generieren, können Sie das pwgen-Dienstprogramm verwenden.

Führen Sie yum -y install pwgen aus, um das pwgen-Dienstprogramm zu installieren. Führen Sie pwgen -1 64 aus, um eine Zeichenfolge mit einer Länge von 64 Zeichen zu generieren. Sie werden Folgendes sehen:

[root@liptan-pc mailtrain]# pwgen -1 64
Poy0aeLalie5uew7eenanootehohLudiuleac5aigaekah1amokumeeg5aiG2ied

Erstellen Sie eine neue Konfigurationsdatei production.toml. Die in dieser Datei bereitgestellte Konfiguration überschreibt die Standardkonfigurationsdatei default.toml. Wir sollten die Standardkonfigurationsdatei nicht ändern. Erstellen Sie eine neue Datei production.toml, um die überschreibende Konfiguration zu speichern.

nano config/production.toml

Füllen Sie die Datei mit der folgenden Konfiguration:

language="en"

user="mailtrain"
group="mailtrain"
rouser="nobody"
rogroup="nobody"

[log]
level="error"

[www]
host="localhost"
port="3000"
secret="RandomString"
remember=604800
proxy=true
tmpdir="/tmp"

[mysql]
user="mailtrain"
password="StrongPassword"
database="mailtrain"
port=3306
charset="utf8"


[redis]
enabled=true

[queue]
processes=5

[reports]
enabled=true

Die obige Konfiguration ermöglicht es Mailtrain, als Benutzer mailtrain zu laufen, und der Mailtrain Reports Worker-Benutzer wird als Benutzer nobody ausgeführt. Darüber hinaus konfiguriert sie den integrierten Server, um auf localhost auf Port 3000 zu hören. Wir werden Nginx als Reverse-Proxy einrichten, damit die Mailtrain-Weboberfläche über den Standard-HTTP-Port zugänglich ist.

Ersetzen Sie RandomString in secret= durch die oben generierte zufällige Zeichenfolge. Setzen Sie proxy auf true, da wir den integrierten Mailtrain-Server hinter dem Nginx-Proxy ausführen werden.

Setzen Sie den Benutzernamen, das Passwort und den Datenbanknamen der Datenbank, die Sie erstellt haben, um die Mailtrain-Daten zu speichern.

Erstellen Sie auch eine neue Datei, um die Produktionskonfiguration für die Worker-Berichte zu speichern.

nano workers/reports/config/production.toml

Füllen Sie die Datei mit der folgenden Konfiguration:

[log]
level="error"

[mysql]
host="localhost"
user="mailtrain_ro"
password="StrongROPassword"
database="mailtrain"
port=3306
charset="utf8"
timezone="local"

Laden Sie nun die erforderlichen Node.js-Abhängigkeiten herunter und installieren Sie die Software:

npm install --production

Sobald die Anwendung installiert ist, können Sie sie sofort mit folgendem Befehl starten:

NODE_ENV=production npm start

Wenn der Server läuft, sollten Sie die folgende Ausgabe sehen.

[root@liptan-pc mailtrain]# NODE_ENV=production npm start

> [email protected] start /opt/mailtrain
> node index.js
    
info Using local auth

Aber anstatt die Anwendung direkt zu starten, werden wir einen systemd-Dienst verwenden. Stoppen Sie die Ausführung, indem Sie Strg + C drücken.

Geben Sie die Eigentümerschaft der Dateien an den Mailtrain-Benutzer und entfernen Sie alle Berechtigungen über die Konfiguration von anderen Nicht-Root-Benutzern des Systems:

chown -R mailtrain:mailtrain /opt/mailtrain  
chmod o-rwx /opt/mailtrain/config

Systemd-Dienst einrichten

Erstellen Sie eine neue Systemd-Dienstdatei. Die Verwendung von Systemd anstelle eines direkten Befehls zum Ausführen des Servers stellt sicher, dass der Server automatisch bei einem Fehler und beim Neustart gestartet wird. Es erleichtert die Verwaltung des Dienstes erheblich.

nano /etc/systemd/system/mailtrain.service

Füllen Sie die Datei mit der folgenden Konfiguration:

[Unit]
Description=Mailtrain Server
Requires=mariadb.service
After=syslog.target network.target

[Service]
user=mailtrain
group=mailtrain
Environment="NODE_ENV=production"
WorkingDirectory=/opt/mailtrain
ExecStart=/usr/bin/node index.js
Type=simple
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=mailtrain

[Install]
WantedBy=multi-user.target

Starten Sie Mailtrain und aktivieren Sie es, damit es beim Booten automatisch gestartet wird:

systemctl enable mailtrain  
systemctl start mailtrain

Um den Status des Dienstes zu überprüfen, führen Sie Folgendes aus:

systemctl status mailtrain

Sie sollten sehen, dass der Dienst aktiv läuft.

[root@liptan-pc ~]# systemctl status mailtrain
? mailtrain.service - Mailtrain Server
   Loaded: loaded (/etc/systemd/system/mailtrain.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2017-10-09 11:15:40 UTC; 9s ago
 Main PID: 18092 (mailtrain)
   CGroup: /system.slice/mailtrain.service
           ??18092 mailtrain
           ??18105 /usr/bin/node /opt/mailtrain/services/executor.js
           ??18112 /usr/bin/node /opt/mailtrain/services/sender.js
           ??18117 /usr/bin/node /opt/mailtrain/services/sender.js
           ??18125 /usr/bin/node /opt/mailtrain/services/sender.js
           ??18131 /usr/bin/node /opt/mailtrain/services/sender.js
           ??18136 /usr/bin/node /opt/mailtrain/services/sender.js

Oct 09 11:15:40 liptan-pc systemd[1]: Started Mailtrain Server.
Oct 09 11:15:40 liptan-pc systemd[1]: Starting Mailtrain Server...
Oct 09 11:15:44 liptan-pc mailtrain[18092]: info Using local auth

Logrotate einrichten

Logrotate ist ein sehr nützliches Dienstprogramm, um veraltete Protokolle zu aktualisieren. Wenn ein Dienst kontinuierlich läuft, erzeugt er eine große Menge an Protokollen. Die Dateien, die die Protokolle enthalten, verbrauchen viel Speicherplatz. Logrotate löscht regelmäßig die alten Protokolle, damit die Protokolle durch neue Einträge ersetzt werden können.

Erstellen Sie eine neue Logrotate-Konfigurationsdatei:

nano /etc/logrotate.d/mailtrain

Füllen Sie die Datei mit der folgenden Konfiguration:

/var/log/mailtrain.log {
daily
rotate 12
compress
delaycompress
missingok
notifempty
copytruncate
nomail
}

Nginx als Reverse-Proxy einrichten

Wir haben die integrierte Weboberfläche von Mailtrain so konfiguriert, dass sie auf localhost auf Port 3000 hört, da es wichtig ist, einen Produktions-Webserver zu betreiben, um die Website den Benutzern bereitzustellen. In diesem Tutorial verwenden wir Nginx als Reverse-Proxy, damit die Anwendung über den Standard-HTTP-Port zugänglich ist. Installieren Sie den Nginx-Webserver:

yum -y install nginx

Erstellen Sie eine neue virtuelle Host-Datei für den Serverblock für Nginx:

nano /etc/nginx/conf.d/mailtrain.conf

Füllen Sie die Datei mit:

server {
    listen 80;
    listen [::]:80;

    server_name news.example.com www.news.example.com ;
    access_log /var/log/nginx/mailtrain.log;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header HOST $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://127.0.0.1:3000;
        proxy_redirect off;
    }
}

Starten Sie den Nginx-Webserver neu und aktivieren Sie ihn, damit er beim Booten automatisch startet:

systemctl restart nginx  
systemctl enable nginx

Firewall und SELinux konfigurieren

Wenn Sie eine Firewall auf Ihrem Server ausführen, müssen Sie die Firewall so konfigurieren, dass eine Ausnahme für den HTTP-Dienst festgelegt wird. Erlauben Sie dem Nginx-Reverse-Proxy, von außerhalb des Netzwerks zu verbinden.

firewall-cmd --zone=public --permanent --add-service=http  
firewall-cmd --reload

Wenn Sie SELinux auf Ihrem System aktiviert haben, müssen Sie einige Ausnahmen in den SELinux-Richtlinien hinzufügen.

Um zu überprüfen, ob SELinux aktiviert ist, führen Sie Folgendes aus:

getenforce

Wenn Sie SELinux aktiviert haben, führen Sie Folgendes aus:

setsebool -P httpd_can_network_connect 1

Zugriff auf die Weboberfläche

Die Installation von Mailtrain ist nun abgeschlossen. Sie können jetzt auf den Mailtrain-Server unter http://news.example.com zugreifen. Sie sollten die folgende Oberfläche sehen.

Mailtrain

Klicken Sie auf die Schaltfläche Anmelden und melden Sie sich mit dem Benutzernamen admin und dem Passwort test an.

Mailtrain Login

Durchsuchen Sie den Abschnitt Konto des Dashboards und aktualisieren Sie die E-Mail-Adresse und das Passwort. Es ist sehr wichtig, das Passwort so schnell wie möglich zu aktualisieren.

Konto in Mailtrain erstellen

Es ist auch wichtig, die Einstellungen zu aktualisieren, bevor Sie Mailtrain verwenden können.

Mailtrain-Einstellungen

Aktualisieren Sie die Site-URL und die Admin-E-Mail. Sie können auch die Google Analytics-Tracking-ID angeben, um die Einblicke über Google Analytics zu verfolgen. Sie können auch HTML-Code einfügen, der auf der Homepage Ihres Servers angezeigt wird.

Mailtrain-Kampagnenstandards

Legen Sie die Kampagnenstandards fest, wie z.B. Ihren Absendernamen, die Standardadresse, den Standardabsendernamen, die E-Mail und die URL usw. Wenn diese Optionen beim Versenden der E-Mails nicht konfiguriert sind, werden die Standardwerte verwendet.

Mailer-Einstellungen

Schließlich ist die wichtigste Konfiguration, die E-Mail-Server-Anmeldeinformationen bereitzustellen. Sie können jeden SMTP-Server oder Amazon SES (Simple Email Service) verwenden. Wenn Sie SMTP verwenden, geben Sie den Hostnamen des Mailservers, den Port, den Benutzernamen und das Passwort Ihres SMTP-Servers an. Wenn Sie Amazon SES verwenden, geben Sie den API-Schlüssel und andere Anmeldeinformationen an.

Sie können auch Ihren eigenen SMTP-Server einrichten. Folgen Sie einfach einem dieser Leitfäden:

  • So erstellen Sie einen voll funktionsfähigen Mailserver mit Postal
  • Erstellen Sie einen voll funktionsfähigen Mailserver auf CentOS 6 mit Postfix, Dovecot, PostgreSQL
  • Einrichten eines Mailservers mit Exim4, Clamav, Dovecot, SpamAssassin und vielem mehr auf Debian

Sie haben jetzt einen voll funktionsfähigen Mailtrain-Server auf Ihrem CentOS 7-Server installiert. Erstellen Sie Ihre erste Liste und beginnen Sie, Newsletter an die Abonnenten zu senden. Sie können eine interaktive Vorlage mit dem WYSIWYG-Editor erstellen und die E-Mails über die Kampagnen versenden. Mailtrain bietet auch Berichte über die gesendeten und geöffneten E-Mails. Sie können die Registerkarte Automatisierung verwenden, um Trigger zu erstellen, die E-Mails senden, wenn eine bestimmte Aktion ausgeführt wird. Sie können auch die GPG-Verschlüsselung einrichten. Wenn eine Liste ein benutzerdefiniertes Feld für einen GPG-Öffentlichen Schlüssel hat, können Abonnenten ihren GPG-Öffentlichen Schlüssel hochladen, um verschlüsselte Nachrichten von der Liste zu erhalten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.