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

Mailtrain auf Ubuntu 18.04 Server ohne Docker installieren

Dieses Tutorial zeigt Ihnen, wie Sie Mailtrain auf Ubuntu 18.04 ohne Docker installieren. Mailtrain ist eine selbst gehostete Open-Source-Newsletter-App, eine Alternative zu kommerziellen E-Mail-Dienstanbietern wie Mailchimp. Sie können Mailtrain verwenden, um E-Mails 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.

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).

Voraussetzungen

Um Mailtrain auszuführen, benötigen Sie einen Server mit mindestens 1 GB RAM. Sie können auf diesen speziellen Link klicken, um ein kostenloses Guthaben von 50 $ auf DigitalOcean zu erhalten. (Nur für neue Benutzer). Wenn Sie bereits DigitalOcean-Benutzer sind, können Sie auf diesen speziellen Link klicken, um ein kostenloses Guthaben von 50 $ für Vultr zu erhalten (nur für neue Benutzer). Sobald Sie ein Konto bei DigitalOcean oder Vultr haben, installieren Sie Ubuntu 18.04 auf Ihrem Server und befolgen Sie die nachstehenden Anweisungen.

Sie müssen auch einen Domänennamen haben. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und sie Whois-Datenschutz kostenlos bieten.

Installieren Sie Mailtrain auf Ubuntu 18.04 ohne Docker

In einem früheren Tutorial habe ich erklärt, wie man Mailtrain mit Docker installiert. Docker ist großartig für Leute, die eine Anwendung schnell zum Laufen bringen wollen, aber es ist auch sehr ressourcenhungrig. Auf einem VPS mit 1 GB RAM, auf dem Mailtrain mit Docker installiert ist, wird der MySQL-Container oft heruntergefahren, weil der RAM knapp wird. Daher zeige ich Ihnen eine RAM-freundliche Möglichkeit, Mailtrain unter Ubuntu 18.04 zu installieren, wodurch etwa 400 MB RAM eingespart werden können.

Hinweis:Mailtrain stellt ein Installationsskript zur Verfügung, aber es kann veraltet sein und Sie werden wahrscheinlich auf Fehler stoßen, wenn Sie das Installationsskript ausführen. Dieses Tutorial erklärt jeden Schritt, damit Sie verstehen, wie es funktioniert und wie es installiert wird.

Schritt 1: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 18.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.1.34 Datenbankserver Geladen:geladen (/lib/systemd/system/mariadb.service; aktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Sa 2018-09-08 11 :13:27 UTC; vor 21s Docs:man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Haupt-PID:3473 (mysqld) Status:„Nehmen Sie jetzt Ihre SQL-Anfragen entgegen …“ Aufgaben:27 (limit :505) CGroup:/system.slice/mariadb.service └─3473 /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.1.34-MariaDB, für debian-linux-gnu (x86_64) unter Verwendung von readline 5.2

Schritt 2: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 3:Node.js installieren

Mailtrain basiert auf Node.js, einer JavaScript-Laufzeitumgebung, die von Menschen lesbaren JavaScript-Code in Maschinencode übersetzt. Wir müssen also Node.js auf Ubuntu 18.04 installieren, um Mailtrain auszuführen. Mailtrain erfordert Node.js 7+. Dieses Tutorial installiert die aktuelle LTS-Version von Node.js (V8.x) aus dem NodeSource-Repository.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -sudo apt install -y nodejs

Hinweis:Die neueste LTS-Version von Node.js ist jetzt v12, funktioniert aber nicht mit Mailtrain v1.24.1.

Die nodejs Paket enthält die npm-Binärdatei (Node.js-Paketmanager), sodass Sie sie nicht separat installieren müssen. Um Ihre Version von Node.js und npm zu überprüfen, führen Sie

aus
Knoten -vnpm -v

Ausgabe:

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

sudo apt install -y build-essential

Schritt 4: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/

Und installieren Sie die erforderlichen Knotenpakete.

cd /var/www/mailtrainsudo npm install --no-progress --production --unsafe-perm=true

Kopieren Sie die systemd-Service-Unit-Datei 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 . 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.

sudo systemctl status mailtrain.service

Autostart beim Systemstart aktivieren.

sudo systemctl enable mailtrain.service

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

Ihr-Server-IP:3000

Schritt 5: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 18.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 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 6:Aktivieren Sie HTTPS mit Let’s Encrypt

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

sudo apt install software-properties-commonsudo add-apt-repository ppa:certbot/certbotsudo 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 your-email-address -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 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 einen eigenen E-Mail-Server haben, 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.

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 fehlerhafte 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

Wenn Sie nicht möchten, dass Besucher Ihre Mailtrain-Homepage sehen, können Sie eine permanente 301-Umleitung einrichten, um Besucher auf die Homepage Ihrer Website umzuleiten, indem Sie den folgenden Code in die Nginx-Konfigurationsdatei von Mailtrain einfügen.

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

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

sudo systemctl reload nginx

Sie müssen sich die Anmelde-URL von Mailtrain merken.

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

Standardmäßig leitet Sie die Anmeldeschaltfläche zur Mailtrain-Startseite weiter, sodass Sie sich eine andere URL merken müssen.

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

Dadurch können Sie Ihre Listen und andere Dinge im Dashboard verwalten.

So fügen Sie Optionen in das Anmeldeformular ein

Wenn Sie dem Besucher im Anmeldeformular Optionen zur Auswahl geben möchten, müssen Sie benutzerdefinierte Felder erstellen. Gehen Sie zu Ihrer Liste und wählen Sie custom fields aus in der List Actions Dropdown-Menü und benutzerdefiniertes Feld erstellen.

Zuerst müssen Sie ein Feld erstellen, das zur Kopffrage für die Optionsliste wird. In Field Type , können Sie radio button auswählen (für Einfachauswahl) oder checkboxes (bei Mehrfachauswahl). In Group , wählen Sie nichts aus, da dieses Feld zu einer Gruppe für die Optionen wird.

Erstellen Sie dann ein benutzerdefiniertes Feld für jede Option. Sie müssen option for a group value auswählen in Field Type , und wählen Sie den vorherigen benutzerdefinierten Dateinamen in Group aus .

So ändern Sie den Feldtyp

Standardmäßig erlaubt Ihnen die Mailtrain-Weboberfläche nicht, den Dateityp zu ändern, aber Sie können ihn in der Mailtrain-Datenbank ändern. Zum Beispiel muss ich einen Feldtyp von checkboxes ändern zum radio button .

Ich empfehle, die Datenbank zu sichern, bevor Sie etwas in der Datenbank ändern. Sie können den folgenden Befehl ausführen, um die Mailtrain-Datenbank zu sichern.

sudo mysqldump -u root mailtrain> mailtrain.sql

Melden Sie sich dann beim MariaDB-Datenbankserver an.

sudo mysql -u root

Verwenden Sie den mailtrain Datenbank.

mailtrain verwenden;

Alle benutzerdefinierten Felder werden in custom_fields gespeichert Tisch. Sie können den Inhalt überprüfen mit:

SELECT * FROM custom_fields;

Suchen Sie das benutzerdefinierte Feld, das Sie ändern möchten, und führen Sie den folgenden SQL-Befehl aus, um seinen Typ zu ändern. Ersetzen Sie die ID-Nummer durch Ihre eigene.

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

Beenden Sie den Datenbankserver.

BEENDEN;

So bereinigen Sie Ihre E-Mail-Liste in Mailtrain

Nicht engagierte Abonnenten werden Ihnen kein Geld einbringen, und da sie Ihre E-Mails nicht öffnen, verringern Postfachanbieter Ihre Domain-Reputation. Um sicherzustellen, dass Ihre zukünftigen E-Mails in Ihrem Posteingang landen, sollten Sie nicht engagierte Abonnenten aus Ihrer E-Mail-Liste entfernen.

Sie können ein Segment für Personen erstellen, die Ihre E-Mail in den letzten 60 Tagen nicht geöffnet haben, und dann ihre E-Mail-Adressen löschen. Die Regel für dieses Segment lautet wie folgt:


Ubuntu
  1. Ubuntu – X11 auf Server ohne Weiterleitung?

  2. 18.04 Server ohne Netzwerkverbindung installieren?

  3. Ubuntu 12.04 installieren, ohne Grub zu installieren?

  4. Wie installiere ich Ubuntu Server ohne Netzwerkverbindung?

  5. Docker installieren (Ubuntu)

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

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

So installieren Sie Mailtrain auf Ubuntu 18.04 mit Docker

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

Fehler beim Installieren von Ubuntu Server 18.04:Ungültiger Poolname?

Installation von Gitea – Ein selbst gehosteter Git-Server auf Ubuntu 22.04 LTS