GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Installieren Sie Mailtrain v1.24 auf Ubuntu 20.04 Server ohne Docker

Dieses Tutorial zeigt Ihnen, wie Sie Mailtrain auf Ubuntu 20.04 ohne Docker installieren. Mailtrain ist eine selbst gehostete Open-Source-Newsletter-Anwendung, eine Alternative zu kommerziellen E-Mail-Dienstanbietern wie Mailchimp. Sie können Mailtrain verwenden, um Newsletter an Ihre E-Mail-Abonnenten über Ihren eigenen E-Mail-Server oder mithilfe eines beliebigen SMTP-Relay-Dienstes (Mailjet, SendGrid, AmazonSES, Mailgun usw.) zu senden.

Aktualisieren :Mailtrain V2 wird veröffentlicht. Neue Benutzer sollten V2 anstelle von V1.24 verwenden :So installieren Sie Mailtrain v2 auf Ubuntu 20.04 Server

Mailtrain wird unter den Bedingungen der GPL v3.0-Lizenz veröffentlicht, die auf Node.js und MySQL/MariaDB basiert. Die neueste Version ist v1.24.1, veröffentlicht am 28. September 2018. Funktionen von Mailtrain sind wie folgt:

  • Es ermöglicht Ihnen die einfache Verwaltung großer Mailinglisten (z. B. 1 Million Abonnenten).
  • Sie können Abonnenten manuell über die API hinzufügen oder aus einer CSV-Datei importieren.
  • Es unterstützt benutzerdefinierte Felder (Textfelder, Zahlen, Dropdown-Menüs oder Kontrollkästchen), Merge-Tags und benutzerdefinierte Formulare.
  • Listensegmentierung.
  • RSS-Kampagne:Newsletter automatisch aus RSS-Feed generieren und an Abonnenten senden.
  • Abonnenten können ihre öffentlichen GPG-Schlüssel hochladen und Mailtrain verschlüsselt den Newsletter für sie.
  • Ermöglicht es Ihnen, individuelle Klickstatistiken für jeden Link zu überprüfen.
  • Erweiterte Editoren für E-Mail-Vorlagen und HTML-Code-Editor.
  • Automatisierung:Senden Sie bestimmte E-Mails, wenn der Benutzer Ihren vordefinierten Auslöser aktiviert.
  • Sie können eine offene E-Mail-Liste (öffentliche Anmeldung zulassen) und eine geschlossene E-Mail-Liste erstellen (Abonnenten werden der Liste vom Administrator hinzugefügt).
  • Damit können Sie alte E-Mail-Kampagnen fortsetzen (alte Kampagnen an neue Abonnenten senden).

Schritt 1:Wählen Sie den richtigen Hosting-Anbieter

Durch Self-Hosting können Sie viel Geld sparen. Mailtrain ist kostenlose Open-Source-Software. Sie müssen nur 26 $/Monat für den VPS (Virtual Private Server) bezahlen, der einen voll ausgestatteten Mailserver und die E-Mail-Marketing-Plattform Mailtrain betreiben kann. Es kann problemlos Millionen von Abonnenten verwalten. Ihre Gesamtkosten betragen also immer 26 $/Monat, egal wie viele Abonnenten Sie haben . Wenn Sie Millionen von Abonnenten auf MailChimp besitzen, würden die Kosten Tausende von Dollar pro Monat betragen.

Es ist keine leichte Aufgabe, einen VPS-Anbieter (Virtual Private Server) zu finden, der für E-Mail-Hosting und E-Mail-Marketing geeignet ist. Viele Hosting-Unternehmen wie DigitalOcean blockieren Port 25. DigitalOcean würde Port 25 nicht entsperren, daher müssen Sie ein SMTP-Relay einrichten, um die Blockierung zu umgehen, was Sie zusätzliches Geld kosten kann. Wenn Sie Vultr VPS verwenden, ist Port 25 standardmäßig blockiert. Sie können es entsperren, wenn Sie ein Support-Ticket öffnen, aber sie können es jederzeit wieder blockieren, wenn sie entscheiden, dass Ihre E-Mail-Sendeaktivität nicht erlaubt ist. Vultr kann es tatsächlich erneut blockieren, wenn Sie ihre Server zum Versenden von Newslettern verwenden.

Ein weiteres Problem ist, dass große bekannte Hosting-Anbieter wie DigitalOcean oder Vultr von Spammern missbraucht werden. Oft steht die Server-IP-Adresse auf mehreren Blacklists. Vultr hat einige ganze IP-Bereiche auf die schwarze Liste gesetzt.

ScalaHosting ist eine sehr gute Option, um einen Mailserver zu betreiben, weil

  • Sie blockieren Port 25 nicht.
  • Die IP-Adresse steht auf keiner E-Mail-Blacklist. (Zumindest trifft das in meinem Fall zu. Ich habe mich für das Rechenzentrum in Dallas entschieden.) Sie möchten definitiv nicht auf der gefürchteten IP-Blacklist von Microsoft Outlook oder der Blacklist von SpamRats aufgeführt werden. Einige schwarze Listen blockieren einen ganzen IP-Bereich und Sie haben keine Möglichkeit, Ihre IP-Adresse von dieser Art von schwarzen Listen zu entfernen.
  • Sie können den PTR-Eintrag bearbeiten, um die E-Mail-Zustellbarkeit zu verbessern.
  • Sie ermöglichen es Ihnen, nein Newsletter an Ihre E-Mail-Abonnenten zu senden Stundenlimits oder Tageslimits, was auch immer. Beachten Sie, dass Sie keinen Spam versenden dürfen, auch bekannt als unerwünscht Bulk E-Mail. Wenn der Empfänger Ihnen nicht ausdrücklich die Erlaubnis erteilt, E-Mails zu senden, und Sie E-Mails an ihn senden, handelt es sich um unerwünschte E-Mails.

Ich empfehle, das unten verlinkte Tutorial zu befolgen, um einen Linux-VPS-Server auf ScalaHosting richtig einzurichten. Verwenden Sie den Gutscheincode linuxbabe2021 auf der ScalaHostingZahlungsseite um 100 $ zu sparen wenn Sie 12 Monate im Voraus bezahlen möchten.

  • So erstellen Sie einen Linux-VPS-Server auf ScalaHosting

Außerdem benötigen Sie einen Domänennamen. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und Sie lebenslang kostenlosen Whois-Datenschutz erhalten.

Wenn Sie noch keinen eigenen Mailserver haben, empfehle ich die Verwendung des kostenlosen iRedMail-Programms, um schnell Ihren eigenen Mailserver einzurichten, bevor Sie Mailtrain installieren, damit Sie kein Geld für einen kommerziellen SMTP-Relay-Dienst ausgeben müssen.

Schritt 2:MariaDB-Datenbankserver installieren

Ihre Abonnentendaten werden in einer Datenbank gespeichert. Mailtrain unterstützt MySQL und MariaDB. MariaDB ist ein Drop-in-Ersatz für MySQL. Es wurde von ehemaligen Mitgliedern des MySQL-Teams entwickelt, die befürchten, dass Oracle MySQL in ein Closed-Source-Produkt verwandeln könnte. Lassen Sie uns also den MariaDB-Datenbankserver installieren.

Geben Sie den folgenden Befehl ein, um es unter Ubuntu 20.04 zu installieren.

sudo apt install mariadb-server mariadb-client

Nach der Installation sollte der MariaDB-Server automatisch gestartet werden. Verwenden Sie systemctl um seinen Status zu überprüfen.

systemctl status mariadb

Beispielausgabe:

● mariadb.service – MariaDB 10.3.22 Datenbankserver Geladen:geladen (/lib/systemd/system/mariadb.service; aktiviert; Herstellervoreinstellung:e> Aktiv:aktiv (läuft) seit Mo 2020-04-20 15 :31:14 HKT; vor 52 Sekunden Dokumente:man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Haupt-PID:1826628 (mysqld) Status:"Nehmen Sie jetzt Ihre SQL-Anforderungen entgegen ... " Aufgaben:30 (Grenze:9451) Arbeitsspeicher:73,0 MB CGroup:/system.slice/mariadb.service └─1826628 /usr/sbin/mysqld

Wenn es nicht läuft, starten Sie es mit diesem Befehl:

sudo systemctl start mariadb

Damit MariaDB beim Systemstart automatisch startet, führen Sie

aus
sudo systemctl enable mariadb

Führen Sie nun das Sicherheitsskript nach der Installation aus.

sudo mysql_secure_installation

Wenn Sie aufgefordert werden, das MariaDB-Root-Passwort einzugeben, drücken Sie die Eingabetaste, da das Root-Passwort noch nicht festgelegt ist. Geben Sie dann y ein um das Root-Passwort für den MariaDB-Server festzulegen.

Als nächstes können Sie die Eingabetaste drücken, um alle verbleibenden Fragen zu beantworten, wodurch der anonyme Benutzer entfernt, die Remote-Root-Anmeldung deaktiviert und die Testdatenbank entfernt wird. Dieser Schritt ist eine Grundvoraussetzung für die MariaDB-Datenbanksicherheit. (Beachten Sie, dass der Buchstabe Y wird groß geschrieben, was bedeutet, dass es die Standardantwort ist.)

Überprüfen Sie die Versionsinformationen des MariaDB-Servers.

mariadb --version

Ausgabe:

mariadb Ver 15.1 Distrib 10.3.22-MariaDB, für debian-linux-gnu (x86_64) unter Verwendung von readline 5.2

Schritt 3:Erstellen Sie eine Datenbank und einen Benutzer für Mailtrain

Jetzt müssen wir uns bei der MariaDB-Konsole anmelden und eine Datenbank und einen Benutzer für Mailtrain erstellen. Standardmäßig verwendet das MaraiDB-Paket auf Ubuntu unix_socket um die Benutzeranmeldung zu authentifizieren, was im Grunde bedeutet, dass Sie den Benutzernamen und das Passwort des Betriebssystems verwenden können, um sich bei der MariaDB-Konsole anzumelden. Sie können also den folgenden Befehl ausführen, um sich anzumelden, ohne das MariaDB-Root-Passwort anzugeben.

sudo mariadb -u root

Erstellen Sie mit dem folgenden Befehl eine Datenbank für Mailtrain. Ich habe es mailtrain genannt , aber Sie können einen beliebigen Namen verwenden. (Lassen Sie das Semikolon nicht aus.)

Datenbank-Mailtrain erstellen;

Geben Sie dann den folgenden Befehl ein, um einen Datenbankbenutzer für Mailtrain zu erstellen und dem Benutzer alle Berechtigungen der Mailtrain-Datenbank zu gewähren. Ersetzen Sie mtuser und your-password mit Ihrem bevorzugten Benutzernamen und Passwort.

gewähren Sie alle Privilegien auf mailtrain.* an mtuser@localhost, identifiziert durch 'mtuser_password';

Erstellen Sie als Nächstes einen Benutzer mit Nur-Lese-Zugriff auf die Mailtrain-Datenbank. Ich habe diesen Benutzer mt_readonly genannt .

grant select on mailtrain.* TO mt_readonly@localhost identifiziert durch 'mt_readonly_password';

Leeren Sie die Berechtigungstabelle, damit die Änderungen wirksam werden, und verlassen Sie dann die MariaDB-Konsole.

Privilegien leeren;exit;

Schritt 4:Node.js installieren

Mailtrain basiert auf Node.js, einer JavaScript-Laufzeitumgebung, die menschenlesbaren JavaScript-Code in Maschinencode übersetzt. Wir müssen also Node.js auf Ubuntu 20.04 installieren, um Mailtrain auszuführen. Mailtrain erfordert Node.js 7+. Die neueste Version von Node.js ist v14. Ich empfehle jedoch nicht, die neueste Version zu verwenden, da sie nicht mit Mailtrain v1.24 kompatibel ist. Für beste Kompatibilität empfehle ich die Installation von Node.js 8 aus dem Snap Store.

Wenn Sie Node.js aus dem offiziellen APT-Repository installiert haben, müssen Sie es deinstallieren, da es die Snap-Version von Node.js stören würde.

sudo apt entfernen nodejs

Als nächstes installieren Sie den Snap-Daemon.

sudo apt install snapd

Es gibt mehrere Versionen von Node.js im Snap Store, die angezeigt werden können mit:

Snap-Info-Knoten

Ausgabe:

Kanäle:neu/stabil:– neu/beta:– neu/edge:15.0.0-nightly2020042524a4e615 2020-04-25 (2668) 30 MB classic 14/stable:14.0.0 2020-04- 23 (2647) 30 MB Classic 14/Kandidat:↑ 14/Beta:↑ 14/Edge:↑ 13/Stable:13.13.0 2020-04-14 (2635) 29 MB Classic 13/Kandidat:↑ 13/Beta:↑ 13/ edge:↑ 12/stable:12.16.2 2020-04-23 (2644) 21MB cla ssic 12/Kandidat:↑ 12/Beta:↑ 12/Edge:↑ 11/Stable:11.15.0 2019-06-26 (2336) 19MB Classic 11/Kandidat:↑ 11/Beta:↑ 11/Edge:↑ 10/ Stable:10.20.1 2020-04-23 (2638) 20 MB Classic 10/Kandidat:↑ 10/Beta:↑ 10/Edge:↑ 9/Stable:9.11.2 2018-12-14 (1407) 17 MB Classic 9/Kandidat :↑ 9/Beta:↑ 9/Edge:↑ 8/Stable:8.16.0 2019-06-24 (2310) 16 MB Classic 8/Kandidat:↑ 8/Beta:↑ 8/Edge:↑ 6/Stable:6.17.1 2019-06-24 (2311) 13 MB Classic 6/Kandidat:↑ 6/Beta:↑ 6/Edge:↑ 

Wir können Node.js aus dem 8/stable-Kanal installieren.

sudo snap install node --classic --channel=8/stable

Um Ihre Version von Node.js und npm zu überprüfen, führen Sie

aus
Knoten -vnpm -v

Ausgabe:

Hinweis :Wenn Sie zum ersten Mal ein Snap-Paket auf dem Server installieren, müssen Sie sich abmelden und wieder anmelden, um die Snap-Version von Ruby verwenden zu können.

Um native Addons von npm zu kompilieren und zu installieren, müssen Sie auch Build-Tools installieren:

sudo apt install -y build-essential

Schritt 5:Mailtrain ausführen

Gehen Sie zu /var/www/ und Mailtrain-Dateien von Github abrufen.

cd /var/www/sudo git clone https://github.com/Mailtrain-org/mailtrain.git

Importieren Sie die anfänglichen SQL-Daten in die Mailtrain-Datenbank, indem Sie den folgenden Befehl verwenden. Sie müssen das Passwort von mtuser eingeben .

mariadb -u mtuser -p mailtrain  

Erstellen Sie die Konfigurationsdatei production.toml.

sudo nano /var/www/mailtrain/config/production.toml

In dieser Datei können Sie Konfigurationen hinzufügen, die die Standardkonfigurationen in /var/www/mailtrain/config/default.toml überschreiben Datei. Wir müssen nur die folgenden Konfigurationen hinzufügen.

user="mailtrain"group="mailtrain"[log]level="error"[www]secret="Ersetzen Sie dies durch zufällige Zeichen"[mysql]user="mtuser"password="mtuser_password"[queue] Prozesse=5

Speichern und schließen Sie die Datei. Erstellen Sie dann den mailtrain Benutzer und Gruppe, unter der der Mailtrain-Daemon ausgeführt werden soll. Beachten Sie, dass wir für diesen Benutzer kein Passwort erstellen müssen, also erstellen wir einen Systembenutzer anstelle eines normalen Benutzers.

sudo adduser --system --group mailtrain

Erstellen Sie eine Konfigurationsdatei für den Report Worker.

sudo nano /var/www/mailtrain/workers/reports/config/production.toml

Fügen Sie die folgenden Konfigurationen hinzu. Dieser Report Worker hat nur Lesezugriff auf die Mailtrain-Datenbank.

[log]level="error"[mysql]user="mt_readonly"password="mt_readonly_password"

Speichern und schließen Sie die Datei. Ändern Sie dann die Berechtigung von /var/www/mailtrain/ .

sudo chown mailtrain:mailtrain /var/www/mailtrain/ -Rsudo chmod o-rwx /var/www/mailtrain/config/

Installieren Sie Python2.7 und erstellen Sie einen symbolischen Link.

sudo apt install python2.7sudo ln -s /usr/bin/python2.7 /usr/bin/python

Und installieren Sie die erforderlichen Knotenpakete.

cd /var/www/mailtrainsudo -u mailtrain npm config set scripts-prepend-node-path truesudo -u mailtrain npm install --no-progress --production --unsafe-perm=true

Kopieren Sie die Service-Unit-Datei von Mailtrain systemd nach /etc/systemd/system/ Verzeichnis.

sudo cp /var/www/mailtrain/setup/mailtrain.service /etc/systemd/system/

Öffnen Sie diese Datei.

sudo nano /etc/systemd/system/mailtrain.service

Ändern Sie /opt/mailtrain nach /var/www/mailtrain . Und ändern Sie /usr/bin/node nach /snap/bin/node weil wir die Snap-Version von Node.js verwenden.

Sie können auch die folgende Zeile auskommentieren. Denn wenn die folgende Zeile aktiviert ist, wenn MySQL/MariaDB neu startet, dann wird der mailtrain.service wird ebenfalls neu gestartet, und wenn der MySQL/MariaDB-Server aktualisiert wird, dann mailtrain.service wird aufhören. Ich denke, es besteht keine Notwendigkeit, den mysql.service anzufordern .

Requires=mysql.service

Speichern und schließen Sie diese Datei. Starten Sie dann mailtrain.service .

sudo systemctl start mailtrain.service

Überprüfen Sie seinen Status. Stellen Sie sicher, dass es ausgeführt wird.

systemctl status mailtrain.service

Ausgabe:

● mailtrain.service - Mailtrain-Server Geladen:geladen (/etc/systemd/system/mailtrain.service; deaktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit So. 2020-04-26 10:26:37 HKT; vor 11s Main PID:3058360 (mailtrain) Tasks:20 (limit:9451) Memory:228.6M CGroup:/system.slice/mailtrain.service ├─3058360 mailtrain └─3058396 /snap/node/2310/bin/node /var /www/mailtrain/services/sender.js

Autostart beim Systemstart aktivieren.

sudo systemctl enable mailtrain.service

Nachdem Mailtrain ausgeführt wurde, können Sie über Port 3000 auf die Mailtrain-Weboberfläche zugreifen.

Ihr-Server-IP:3000

Schritt 6:Reverse Proxy einrichten und HTTPS aktivieren

Bevor Sie das Mailtrain-Webinterface verwenden, lassen Sie es uns hinter Nginx platzieren und dann HTTPS aktivieren. Installieren Sie den Nginx-Webserver unter Ubuntu 20.04 mit:

sudo apt install nginx

Nun können Sie das Beispiel mailtrain-nginx.conf kopieren Datei nach /etc/nginx/conf.d/ Verzeichnis.

sudo cp /var/www/mailtrain/setup/mailtrain-nginx.conf /etc/nginx/conf.d/

Öffnen Sie diese Datei.

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

Suchen Sie die folgende Zeile.

Servername mailtrain.org www.mailtrain.org;

Ändern Sie den Wert von server_name Parameter zu Ihrem eigenen Domainnamen wie newsletter.your-domain.com . Vergessen Sie nicht, einen DNS-A-Eintrag für diese Subdomain zu erstellen.

Servername newsletter.linuxbabe.com;

Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfigurationen.

sudo nginx -t

Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.

sudo systemctl reload nginx

Sie sollten jetzt über Ihre Subdomain auf die Mailtrain-Weboberfläche zugreifen können:newsletter.your-domain.com .

Bearbeiten Sie nun /var/www/mailtrain/config/production.toml Datei.

sudo nano /var/www/mailtrain/config/production.toml

Im [www] Abschnitt, fügen Sie die folgenden zwei Zeilen hinzu, um anzugeben, dass sich Mailtrain hinter dem Nginx-Proxy befindet, und lassen Sie ihn nur an der lokalen Hostadresse lauschen.

host="127.0.0.1"proxy=true

Speichern und schließen Sie die Datei. Starten Sie dann Mailtrain neu, damit die Änderung wirksam wird.

sudo systemctl mailtrain neu starten

Schritt 7:Aktivieren Sie HTTPS mit Let’s Encrypt

Installieren Sie den Let’s Encrypt-Client (certbot) auf Ihrem Ubuntu 20.04-Server.

sudo apt install certbot python3-certbot-nginx

Dann können Sie das Nginx-Plugin verwenden, um automatisch ein TLS-Zertifikat zu erhalten und zu installieren, indem Sie den folgenden Befehl ausführen.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d newsletter.your-domain.com

Jetzt können Sie über Ihren Domainnamen und eine sichere HTTPS-Verbindung auf die Mailtrain-Weboberfläche zugreifen.

htop Befehl sagt mir, dass mein Server etwa 500 MB RAM verwendet. Wenn ich Mailtrain mit Docker ausführe, sind es etwa 900 MB.

Melden Sie sich mit dem Benutzernamen admin an und das Passwort test . Ändern Sie dann die E-Mail-Adresse und das Passwort Ihres Kontos. Gehen Sie zu settings Seite, um die Standardkonfigurationen zu ändern. Sie sollten die Dienstadresse von http://localhost:3000/ ändern zu Ihrer Subdomain (https://newsletter.your-domain.com ).

Hinweis:Das Admin-Konto ist ein leichtes Ziel für Hacker. Für beste Sicherheit wird empfohlen, dass Sie den Benutzernamen von admin ändern zu etwas anderem. Die Mailtrain-Weboberfläche bietet keine solche Option, aber Sie können den Benutzernamen in der MariaDB-Datenbank mit dem SQL-Befehl ändern.

In den Mailer Settings , können Sie SMTP verwenden, wenn Sie über einen eigenen E-Mail-Server verfügen, oder Amazon SES verwenden. Tatsächlich können Sie auch andere SMTP-Relay-Dienste im SMTP verwenden Tab. Im folgenden Screenshot verwende ich meinen eigenen E-Mail-Server. E-Mails werden auf Port 587 mit STARTTLS-Verschlüsselung übermittelt.

Wenn Mailtrain auf Ihrem E-Mail-Server installiert ist, sollten Sie die folgenden SMTP-Einstellungen verwenden. Der Hostname sollte 127.0.0.1 und der Port 25 sein. Es besteht keine Notwendigkeit, Verschlüsselung oder Authentifizierung zu aktivieren, wenn Sie mit localhost sprechen.

Speichern Sie Ihre Einstellungen. Dann können Sie eine Liste erstellen, um die Funktionalitäten von Mailtrain zu testen.

So aktivieren Sie den Redis-Cache

Sie können den Redis-Server für den Sitzungscache installieren. Dadurch kann Mailtrain 5 Prozesse anstelle des standardmäßigen einzelnen Prozesses ausführen, was die E-Mail-Zustellung beschleunigt, wenn Sie viele E-Mail-Abonnenten haben (Beachten Sie, dass dies die Speichernutzung um etwa 250 MB erhöht).

sudo apt install redis

Nach der Installation sollte Redis automatisch gestartet werden. Sie können den Status überprüfen mit:

systemctl status redis

Beispielausgabe:

● redis-server.service – Erweiterter Schlüsselwertspeicher Geladen:geladen (/lib/systemd/system/redis-server.service; aktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Sun 2020-04 -26 11:02:03 HKT; Vor 4min 23s Dokumente:http://redis.io/documentation, man:redis-server(1) Haupt-PID:3059455 (redis-server) Aufgaben:4 (Limit:9451) Arbeitsspeicher:2,3 MB CGroup:/system.slice /redis-server.service └─3059455 /usr/bin/redis-server 127.0.0.1:6379

Wenn es nicht läuft, können Sie es starten mit:

sudo systemctl start redis

Autostart beim Booten aktivieren:

sudo systemctl enable redis

Als nächstes bearbeiten Sie die Mailtrain-Konfigurationsdatei.

sudo nano /var/www/mailtrain/config/production.toml

Fügen Sie die folgenden zwei Zeilen am Ende der Datei hinzu, um Redis zu aktivieren.

[redis]enabled=true

Speichern und schließen Sie die Datei. Starten Sie dann Mailtrain neu.

sudo systemctl mailtrain neu starten

Umgang mit Bounce-Nachrichten in Mailtrain

Früher oder später wird Ihre E-Mail-Liste Adressen enthalten, an die Sie keine E-Mails senden können. Wenn beispielsweise ein Abonnent, der eine Firmen-E-Mail-Adresse verwendet, das Unternehmen verlässt, wird diese E-Mail-Adresse gelöscht. Ihr E-Mail-Server erhält also eine Bounce-Nachricht, die besagt, dass die E-Mail nicht zugestellt werden kann.

Wenn Sie zum Senden von E-Mails einen SMTP-Relay-Dienst verwenden, werden diese Bounce-Nachrichten für Sie verarbeiten. Wenn Sie Ihren eigenen E-Mail-Server zum Senden von E-Mails verwenden, müssen Sie Bounce-Nachrichten in Mailtrain verarbeiten. Mailtrain bietet zwei Möglichkeiten zum Umgang mit unzustellbaren Nachrichten.

  • über VERP
  • über das Postfix-Protokoll

Ich persönlich verwende die VERP-Methode, weil sie in der E-Mail-Community weit verbreitet ist und auch, weil die zweite Methode eine hohe CPU-Auslastung auf meinem Server verursacht.

VERP-Bounce-Handhabung

Mit VERP (Variable Envelope Return Path) verwendet Ihr E-Mail-Listenmanager eindeutige Envelope-Adressen für jeden Abonnenten. Um VERP zu aktivieren, bearbeiten Sie production.toml Datei.

sudo nano /var/www/mailtrain/config/production.toml

Wenn auf Ihrem Mailtrain-Host kein SMTP-Server läuft, fügen Sie den folgenden Text hinzu.

[verp]enabled=trueport=25disablesenderheader=true

Wenn auf Ihrem Mailtrain-Server ein SMTP-Server wie Postfix ausgeführt wird, fügen Sie den folgenden Text hinzu. Der Bounce-Handling-Server lauscht auf 127.0.0.1:2525 .

[verp] enabled=true port=2525 host="127.0.0.1"disablesenderheader=true

Speichern und schließen Sie die Datei. Starten Sie dann Mailtrain neu, damit die Änderungen wirksam werden.

sudo systemctl mailtrain neu starten

Gehen Sie in der Mailtrain-Weboberfläche zu settings -> VERP Bounce Handlding . Aktivieren Sie Use VERP to catch bounces . Speichern Sie Ihre Einstellungen.

Als nächstes müssen Sie einen MX-Eintrag für den Server-Hostnamen erstellen (bounces.your-domain.com ), fügen Sie dann einen Eintrag für diesen Hostnamen hinzu, der auf Ihren Mailtrain-Host verweist, sodass Bounce-Nachrichten an Ihren Mailtrain-Host gesendet werden können. Jeder Abonnent in Ihrer Liste hat eine eindeutige Envelope-Adresse wie [email protected] .

Beachten Sie, dass, wenn Sie einen DMARC-Eintrag für Ihren Domänennamen bereitgestellt haben, die SPF-Ausrichtung auf den entspannten Modus eingestellt werden muss. Wenn er auf den strengen Modus eingestellt ist, könnte Ihr Newsletter die DMARC-Prüfung nicht bestehen.

Wenn der Bounce-Handling-Server von Mailtrain auf Port 2525 von 127.0.0.1 und der Postfix-SMTP-Server auf Port 25 der öffentlichen IP-Adresse lauscht, müssen Sie eine Transportkarte einrichten, damit Postfix die Bounce-Nachricht an Mailtrain weiterleiten kann. Erstellen Sie die Transportzuordnungsdatei.

sudo nano /etc/postfix/transport

Fügen Sie dieser Datei die folgende Zeile hinzu. Dies weist Postfix an, E-Mails mit Adressen wie [email protected] weiterzuleiten an den Bounce-Handling-Server von Mailtrain.

bounces.ihre-domain.com smtp:[127.0.0.1]:2525

Speichern und schließen Sie die Datei. Generieren Sie dann die Indexdatei.

sudo postmap /etc/postfix/transport

Postfix-Hauptkonfigurationsdatei bearbeiten.

sudo nano /etc/postfix/main.cf

Fügen Sie der Datei die folgende Zeile hinzu.

transport_maps =hash:/etc/postfix/transport

Hinweis:Wenn Sie iRedMail zum Einrichten Ihres Mailservers verwendet haben, wird die Datei transport_maps Parameter hat einige andere Werte. Sie sollten den Wert am Ende wie unten anhängen.

transport_maps =proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf proxy:mysql:/etc/postfix/mysql/transport_maps_maillist.cf proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf hash:/ etc/postfix/transport

Speichern und schließen Sie die Datei. Starten Sie dann Postfix neu, damit die Änderung wirksam wird.

sudo systemctl reset postfix

Umgang mit unzustellbaren Nachrichten über das Postfix-Protokoll

Dies setzt voraus, dass Mailtrain auf Ihrem E-Mail-Server installiert ist.

Mailtrain kann unzustellbare Nachrichten aus dem Postfix-Mailprotokoll erkennen, indem es Zeilen findet, die status=bounced enthalten . Zuerst müssen Sie den Postfix-Protokollleseserver aktivieren. Bearbeiten Sie die production.toml Datei.

sudo nano /var/www/mailtrain/config/production.toml

Fügen Sie den folgenden Text hinzu.

[postfixbounce]enabled=true

Speichern und schließen Sie die Datei. Starten Sie dann Mailtrain neu, damit die Änderungen wirksam werden.

sudo systemctl mailtrain neu starten

Jetzt lauscht der Postfix-Protokollleseserver auf 127.0.0.1:5699. Führen Sie den folgenden Befehl aus, damit es das Postfix-Protokoll lesen kann.

tail -F /var/log/mail.log | nc localhost 5699 -

Damit es im Hintergrund läuft, können Sie eine systemd-Diensteinheit erstellen.

sudo nano /etc/systemd/system/bouncetail.service

Fügen Sie den folgenden Text hinzu.

[Unit]Description=Postfix Bounce NotifierAfter=mailtrain.service[Service]ExecStart=/bin/sh -c '/usr/bin/tail -F /var/log/mail.log | nc localhost 5699 -'Type=simpleRestart=alwaysRestartSec=10[Install]WantedBy=multi-user.target

Speichern und schließen Sie die Datei. Starten Sie dann diesen Dienst und aktivieren Sie den automatischen Start beim Booten.

sudo systemctl start bouncetailsudo systemctl enable bouncetail

Stellen Sie sicher, dass Sie den Bouncetail-Dienst neu starten, nachdem Sie den Mailtrain-Dienst neu gestartet haben. Ich habe festgestellt, dass der Bouncetail-Dienst eine hohe CPU-Auslastung auf meinem Server verursacht, daher verwende ich diese Methode nicht.

Aktualisieren

Nachdem ich Mailtrain einige Zeit auf meinem eigenen Server verwendet hatte, stellte ich fest, dass dies andere Gründe sind, die zu E-Mail-Bounces führen. Das Folgende sind Soft-Bounces.

  • Das Postfach des Empfängers ist voll.
  • Ihre IP-Adresse befindet sich auf einer schwarzen Liste.
  • E-Mail-Server des Empfängers ist ausgefallen oder offline.

Es gibt auch Hardbounce, d.h. die E-Mail-Adresse des Empfängers existiert nicht. Standardmäßig kündigt Mailtrain eine E-Mail-Adresse, wenn ein Bounce erkannt wird, was für Hard Bounces in Ordnung ist, aber es ist eine gute Idee, mehrere Soft Bounces zuzulassen, bevor Sie die schlechte E-Mail-Adresse abbestellen. Sie können den empfangenden E-Mail-Server bitten, Ihre IP-Adresse von der schwarzen Liste zu entfernen, und dann die zugehörige E-Mail-Adresse erneut abonnieren.

Hochladen von Bildern in Mailtrain

Um Bilder in Mailtrain hochzuladen, müssen Sie imagemagick installieren Paket. Ohne sie könnte Mailtrain beim Hochladen von Bildern Fehler ausgeben.

sudo apt install imagemagick

So fügen Sie ein Anmeldeformular auf Ihrer Website ein

Zunächst müssen Sie die ursprungsübergreifende Ressourcenfreigabe aktivieren. Bearbeiten Sie die production.toml Datei.

sudo nano /var/www/mailtrain/config/production.toml

Fügen Sie die folgende Zeile in die Datei ein, um Ihre Website auf die weiße Liste zu setzen.

[cors]# Zulassen, dass Abonnement-Widgets eingebettet werdenorigins=['https://www.example.com']

Speichern und schließen Sie die Datei. Starten Sie dann Mailtrain neu, damit die Änderung wirksam wird.

sudo systemctl mailtrain neu starten

Fügen Sie als Nächstes den folgenden Code auf Ihrer Website hinzu, um das Anmeldeformular anzuzeigen. Ersetzen Sie den roten Text durch den Mailtrain-Domainnamen und Ihre eigene Listen-ID.


Fügen Sie dann benutzerdefinierte CSS-Regeln hinzu, um es optisch ansprechender zu gestalten.

So erstellen Sie zusätzliche Benutzer in Mailtrain

Mailtrain v2 ermöglicht es dem Administrator, mehrere Benutzer mit granularen Benutzerberechtigungen und flexibler Freigabe zu erstellen. Aber mit der aktuellen Version v.1.24.1 können Sie Benutzer nur über die Datenbank erstellen. Melden Sie sich bei der MySQL/MariaDB-Konsole an.

sudo mysql -u root

Verwenden Sie den mailtrain Datenbank.

mailtrain verwenden;

Erstellen Sie dann einen Benutzereintrag mit dem folgenden SQL-Befehl.

INSERT INTO `users` (`username`, `password`, `email`, `access_token`, `reset_token`, `reset_expire`, `created`) VALUES ('your-username',PASSWORD("your- Passwort"),'[email protected]',NULL,NULL,NULL,NOW());

Beenden Sie den Datenbankserver.

BEENDEN;

Ich habe festgestellt, dass sich auf diese Weise erstellte Benutzer beim ersten Mal nicht an der Mailtrain-Weboberfläche anmelden können. Benutzer müssen den Link „Passwort vergessen“ auf der Anmeldeseite verwenden, um ihr Passwort zurückzusetzen, dann sollte die Anmeldung funktionieren. Beachten Sie auch, dass alle Benutzer Administratorrechte in der Mailtrain-Weboberfläche haben.

So importieren Sie E-Mail-Listen von MailChimp

Zuerst müssen Sie zur Audience gehen Registerkarte in Ihrem MailChimp-Dashboard. Klicken Sie auf View Contacts Schaltfläche, um alle Abonnenten anzuzeigen. Klicken Sie dann auf Export Audience Schaltfläche, um Ihre Liste als CSV-Datei zu exportieren.

Gehen Sie dann zum Mailtrain-Dashboard und wählen Sie Ihre E-Mail-Liste aus. Wählen Sie die List Actions aus Dropdown-Schaltfläche und klicken Sie auf Import Subscribers .

Auf der nächsten Seite müssen Sie die von MailChimp heruntergeladene CSV-Datei hochladen.

Dann müssen Sie die Felder in MailChimp mit den Feldern in Ihrer Mailtrain-E-Mail-Liste abgleichen. Wenn einige der Felder in MailChimp nicht in der Mailtrain-E-Mail-Liste vorhanden sind, können Sie sie im Mailtrain-Dashboard erstellen.

Bitte beachten Sie, dass Sie, wenn Ihre MailChimp-Felder Optionsfelder enthalten, auch Optionsfelder in Mailtrain-Feldern erstellen sollten. Sie müssen Ihre MailChimp-Liste jedoch basierend auf dem Wert des Optionsfelds segmentieren, diese Segmente dann in verschiedene CSV-Dateien exportieren und sie Segment für Segment in Mailtrain importieren. Das liegt daran, dass Mailtrain keine Möglichkeit bietet, die Werte der einzelnen Optionsfelder von MailChimp abzugleichen.

Cron-Job zum automatischen Bereinigen von nicht abonnierten E-Mail-Adressen

Sie können abgemeldete E-Mail-Adressen im webbasierten Admin-Panel von Mailtrain manuell löschen, aber es ist viel effizienter, sie mit MySQL/MariaDB-Befehlen zu löschen, dann erstellen Sie einfach einen Cron-Job, um diese Aufgabe zu automatisieren.

Melden Sie sich zuerst beim MySQL/MariaDB-Datenbankserver an.

sudo mysql -u root

Verbinden Sie sich dann mit der Mailtrain-Datenbank.

mailtrain verwenden;

Die Informationen der Abonnenten werden im subscription gespeichert Tische. Wenn Sie mehrere Mailinglisten haben, dann haben Sie mehrere subscription Tische. Sie können alle diese Tabellen mit dem folgenden SQL-Befehl auflisten.

zeige Tabellen wie 'subscription%';

Ausgabe auf meinem Server.

+-------------------------------------+| Tables_in_mailtrain (Abonnement %) |+------------------------------------+| Abonnement || Abonnement__1 || Abonnement__2 |+-------------------------------------+

Die erste Tabelle ist eine leere Tabelle. Ich habe zwei Listen in Mailtrain. Sie werden in subscription__1 gespeichert und subscription__2 Tisch. Bei abonnierten E-Mail-Adressen ist der Statuscode auf 1 gesetzt . Abgemeldete E-Mail-Adressen haben den Statuscode auf 2 gesetzt . Um also abgemeldete E-Mail-Adressen zu löschen, können Sie die folgenden SQL-Befehle ausführen.

VON Abonnement LÖSCHEN__1 wobei Status ='2';VON Abonnement LÖSCHEN__2 Wo Status ='2';

Um den MySQL/MariaDB-Datenbankserver zu beenden, führen Sie

aus
Beenden;

Öffnen Sie nun die Crontab-Datei des Root-Benutzers.

sudo crontab -e

Fügen Sie die folgenden zwei Zeilen hinzu.

# Abgemeldete E-Mail-Adressen aus der Mailingliste löschen daily@daily /usr/bin/mysql -u root mailtrain -Bse "VON Abonnement LÖSCHEN__1 where status ='2';FROM Abonnement LÖSCHEN__2 where status ='2';" 

Speichern und schließen Sie die Datei. Und fertig.

So exportieren Sie Ihre E-Mail-Listen in Mailtrain

Es gibt keine Export-Schaltfläche im Mailtrain-Adminbereich. Wenn Sie jedoch phpMyAdmin auf dem Server installiert haben, können Sie Ihre E-Mail-Listen von dort aus exportieren. Wählen Sie die Mailtrain-Datenbank in phpMyAdmin und dann die Tabelle aus, in der Ihre E-Mail-Listen gespeichert sind. In meinem Fall das subscription__1 und subscription__2 Tabellen speichern die Informationen der Abonnenten.

Klicken Sie dann auf export Schaltfläche, um die Tabelle als Datei zu speichern. Beachten Sie, dass es 2 Exportschaltflächen gibt. Sie müssen auf die zweite Exportschaltfläche klicken, um die gesamte Tabelle zu exportieren. Die erste Exportschaltfläche exportiert nur die aktuell sichtbaren Datensätze in der Tabelle.

Als nächstes können Sie das Dateiformat für die Exportdatei auswählen. Klicken Sie abschließend auf die Schaltfläche Los.

Wie man die Mailtrain-Homepage ausblendet

If you don’t want visitors to see your mailtrain home page, you can set up a 301 permanent redirect to redirect visitors to your website’s home page, by adding the following code in Mailtrain’s Nginx configuration file.

location =/ { return 301 http://www.your-domain.com;}

Speichern und schließen Sie die Datei. Then reload Nginx for the change to take effect.

sudo systemctl reload nginx

You need to remember the Mailtrain login URL.

https://newsletter.your-domain.com/users/login

By default, the login button will redirect you to the Mailtrain home page, so you need to remember another URL.

https://newsletter.your-domain.com/lists

This allows you to manage your lists and other stuff in the dashboard.

How to Insert Options on the Signup Form

If you want to give options on the signup form for the visitor to select, then you need to create custom fields. Go to your list and select custom fields in the List Actions drop-down menu and create custom field.

First, you need to create a field that will become the header question for the option list. In Field Type , you can select radio button (for single choice) or checkboxes (for multiple choices). In Group , don’t select anything, because this field will become a group for the options.

Then create custom field for each option. You need to choose option for a group value in Field Type , and choose the previous custom filed name in Group .

How to Change Field Type

By default, the Mailtrain web interface doesn’t allow you to change filed type, but you can change it in the mailtrain database. For example, I need to change a field type from checkboxes to radio button .

I recommend backing up the database before changing anything in the database. You can run the following command to backup mailtrain database.

sudo mysqldump -u root mailtrain> mailtrain.sql

Then log into MariaDB database server.

sudo mysql -u root

Use the mailtrain Datenbank.

USE mailtrain;

All custom fields are stored in the custom_fields Tisch. You can check its content with:

SELECT * FROM custom_fields;

Find the custom field you want to modify and run the following SQL command to change its type. Replace the id number with your own.

UPDATE custom_fields SET type ='radio' Where id =3;

Exit the database server.

BEENDEN;

How to Clean Your Email List in Mailtrain

Unengaged subscribers won’t make you money and because they don’t open your email, mailbox providers will reduce your domain reputation. To make sure your future email will get into the inbox, you should remove unengaged subscribers from your email list.

You can create a segment for people who didn’t open your email in the last 60 days, then delete their email addresses. The rule for this segment is as follows:

RAM Requirement

Mailtrain can use quite a lot of RAM. Make sure your server has at least 1GB free RAM. For example, if the current RAM usage is 4GB, then the total RAM should be at least 5GB. If RAM runs out, emails in Mailtrain could be bounced.


Ubuntu
  1. So installieren Sie Docker unter Ubuntu 18.04

  2. Installieren Sie den SSH-Server Ubuntu 22.04

  3. So installieren Sie Docker unter Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  4. 18.04 Server ohne Netzwerkverbindung installieren?

  5. Wie installiere ich Ubuntu Server ohne Netzwerkverbindung?

So installieren Sie Plex Media Server auf Ubuntu 16.04 Server/Desktop

Installieren Sie die selbstgehostete Mailtrain-Newsletter-App auf dem Ubuntu 16.04-Server

So installieren Sie Mailtrain auf Ubuntu 18.04 mit Docker

Installieren Sie die Discourse Forum-Software auf Ubuntu 18.04 ohne Docker

So installieren Sie den Bitwarden-Server unter Ubuntu 20.04 | 22.04 LTS über Docker

So installieren Sie Docker unter Ubuntu 14.04