GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

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

Mailtrain ist eine selbst gehostete Open-Source-Newsletter-Anwendung, die auf Node.js geschrieben wurde. Es verwendet eine sehr beliebte Node.js-Bibliothek Nodemailer, um die E-Mails zu senden. Es bietet hervorragende Automatisierung und Analysen zum Nulltarif. Mithilfe des CSV-Dateiimports können Sie ganz einfach eine E-Mail-Liste mit einer Million E-Mail-Adressen erstellen oder importieren. Es unterstützt auch benutzerdefinierte Felder und Formulare. Es bietet Automatisierung durch Trigger, die bestimmte Nachrichten an bestimmte 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 zusammen mit Unterstützung für Amazon SES, ZoneMTA, SendGrid und Mailgun usw. unterstützt. Er 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 von CentOS 7. Wir werden auch Nginx als Reverse-Proxy einrichten, um die Anwendung auf dem Standard-HTTP-Port bereitzustellen.

Anforderungen

Metabase benötigt mindestens 1 GB RAM. Alle erforderlichen Abhängigkeiten werden während 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.

Basissystem aktualisieren

Vor der Installation eines Pakets wird empfohlen, die Pakete und das Repository mit dem folgenden Befehl zu aktualisieren.

yum -y update

Installieren Sie Node.js

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

Node.js 8.x-Repository hinzufügen:

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

Installieren Sie Node.js.

yum -y install nodejs

Installieren Sie MariaDB

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

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

Fügen Sie der Datei die folgenden Zeilen hinzu.

[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 die MariaDB, indem Sie sie ausführen.

yum -y install mariadb-server mariadb

So starten Sie MariaDB und ermöglichen es ihr, beim Booten mit den folgenden Befehlen zu starten.

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 festgelegt, drücken Sie einfach die Eingabetaste, um fortzufahren. Sie werden gefragt, ob Sie ein Root-Passwort für Ihre MariaDB-Installation festlegen möchten, wählen Sie y und legen Sie ein starkes Passwort für die Installation fest. Außerdem werden Sie aufgefordert, Testdatenbanken und anonyme Benutzer zu entfernen. Die meisten Fragen sind selbsterklärend und Sie sollten alle Fragen mit ja oder ja beantworten.

Mailtrain benötigt zwei Datenbankbenutzer, um zu arbeiten, einen für die Verwaltung der Mailtrain-Datenbank und einen weiteren für die Generierung der Worker-Berichte.

Um eine Datenbank zu erstellen, müssen wir uns zuerst bei der MySQL-Befehlszeile anmelden. Führen Sie dafür den folgenden Befehl 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 namens 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 dem Benutzer alle Berechtigungen für die Datenbank erteilen. Die Verwendung des Root-Benutzers wird für die Datenbanken nicht empfohlen. 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 anstelle von mailtrain einen beliebigen bevorzugten Benutzernamen verwenden. Ersetzen Sie StrongPassword durch ein starkes Passwort. Geben 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 über die Mailtrain-Datenbank.

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

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

FLUSH PRIVILEGES;

Beenden Sie die MySQL-Eingabeaufforderung mit dem Exit-Befehl.

EXIT;

Installationsabhängigkeiten

Mailtrain benötigt 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 zum Verarbeiten von Bitmap-Bildern, und Git wird zum Klonen des Anwendungsprojekt-Repositorys verwendet. Redis ist eine sehr beliebte Session-Cache-Anwendung und Python, bind-utils, gcc-c++ und make werden verwendet, um die Anwendungsdateien zu kompilieren.

Starten Sie Redis und aktivieren Sie den automatischen Start:

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. Dadurch wird sichergestellt, 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 zum Verschlüsseln der Sitzungsdaten verwendet wird. Um die Zufallszeichenfolge zu generieren, können Sie das Dienstprogramm pwgen verwenden.

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

[[email protected] 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 die Ausführung von Mailtrain als Benutzer „mailtrain“ und die Ausführung von Mailtrain Reports Worker als Benutzer „nobody“. Außerdem wird der integrierte Server so konfiguriert, dass er localhost auf Port 3000 abhört. Wir werden Nginx als Reverse-Proxy einrichten, damit auf die Mailtrain-Weboberfläche über den Standard-HTTP-Port zugegriffen werden kann.

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

Legen Sie den Benutzernamen, das Passwort und den Datenbanknamen der Datenbank fest, die Sie zum Speichern von Mailtrain-Daten erstellt haben.

Erstellen Sie außerdem eine neue Datei zum Speichern der Produktionskonfiguration für die Worker-Berichte.

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 starten mit:

NODE_ENV=production npm start

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

[[email protected] 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, verwenden wir einen systemd-Dienst. Stoppen Sie die Ausführung, indem Sie Strg + C drücken.

Geben Sie dem Mailtrain-Benutzer das Eigentum an den Dateien 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 bei einem Ausfall und Neustart automatisch gestartet wird. Es macht die Verwaltung des Dienstes sehr einfach.

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 so, dass es beim Booten automatisch startet:

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 ausgeführt wird.

[[email protected] ~]# 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 zum Aktualisieren veralteter Protokolle. Wenn ein Dienst kontinuierlich ausgeführt wird, generiert er eine riesige Menge an Protokollen. Die Dateien, die die Protokolle enthalten, verbrauchen viel Speicherplatz. Logrotate löscht regelmäßig die alten Logs, damit die Log-Einträge durch neue Logs 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 in Mailtrain integrierte Webschnittstelle so konfiguriert, dass sie localhost auf Port 3000 abhört, da es wichtig ist, einen Produktionswebserver auszuführen, um die Website für Benutzer bereitzustellen. In diesem Tutorial verwenden wir Nginx als Reverse-Proxy, damit auf die Anwendung über den Standard-HTTP-Port zugegriffen werden kann. Nginx-Webserver installieren:

yum -y install nginx

Erstellen Sie einen neuen virtuellen Host für die Serverblockdatei 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 so, dass er beim Booten automatisch gestartet wird:

systemctl restart nginx
systemctl enable nginx

Firewall und SELinux konfigurieren

Wenn Sie auf Ihrem Server eine Firewall ausführen, müssen Sie die Firewall konfigurieren, um eine Ausnahme für den HTTP-Dienst festzulegen. Nginx-Reverse-Proxy erlauben, sich 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 das Webinterface

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

Klicken Sie auf den Login-Button und melden Sie sich mit dem Benutzernamen admin und dem Passwort test an.

Durchsuchen Sie Konto Abschnitt 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.

Außerdem ist es wichtig, die Einstellungen zu aktualisieren, bevor Sie Mailtrain verwenden können.

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

Legen Sie Standardeinstellungen für Kampagnen fest, wie z. B. Ihren Sander-Namen, Ihre Standardadresse, den Standardnamen von Absender, E-Mail und URL usw. Wenn diese Optionen beim Senden der E-Mails nicht konfiguriert sind, werden die Standardeinstellungen verwendet.

Schließlich besteht die wichtigste Konfiguration darin, E-Mail-Server-Anmeldeinformationen bereitzustellen. Sie können einen beliebigen 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 einer dieser Anleitungen:

  • Erstellen eines voll ausgestatteten Mailservers mit Postal
  • Erstellen Sie einen voll ausgestatteten Mailserver auf CentOS 6 mit Postfix, Dovecot, PostgreSQL
  • Einen Mailserver mit Exim4, Clamav, Dovecot, SpamAssassin und vielem mehr auf Debian einrichten

Sie haben jetzt einen voll funktionsfähigen Mailtrain-Server auf Ihrem CentOS 7-Server installiert. Erstellen Sie Ihre erste Liste und beginnen Sie mit dem Versenden von Newslettern an die Abonnenten. Sie können mit dem WYSIWYG-Editor eine interaktive Vorlage erstellen und die E-Mails mit den 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 öffentlichen GPG-Schlüsselsatz hat, können Abonnenten ihren öffentlichen GPG-Schlüssel hochladen, um verschlüsselte Nachrichten von der Liste zu erhalten.


Cent OS
  1. So installieren Sie MariaDB auf CentOS 7

  2. So installieren Sie MariaDB unter CentOS 8

  3. So installieren Sie Bamboo unter CentOS 7

  4. So installieren Sie PhpWiki unter CentOS 7

  5. So installieren Sie LiteCart unter CentOS 7

So installieren Sie PHP-Fusion unter CentOS 7

So installieren Sie Tine 2.0 unter CentOS 7

So installieren Sie Nextcloud auf CentOS 7

So installieren Sie Seafile auf CentOS 7

So installieren Sie Concrete5 unter CentOS 7

So installieren Sie LibreNMS unter CentOS 7