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
aussudo 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
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 mailtrainErstellen Sie die Konfigurationsdatei production.toml.
sudo nano /var/www/mailtrain/config/production.tomlIn 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=5Speichern 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 mailtrainErstellen Sie eine Konfigurationsdatei für den Report Worker.
sudo nano /var/www/mailtrain/workers/reports/config/production.tomlFü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=trueKopieren 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 dermailtrain.service
wird ebenfalls neu gestartet, und wenn der MySQL/MariaDB-Server aktualisiert wird, dannmailtrain.service
wird aufhören. Ich denke, es besteht keine Notwendigkeit, denmysql.service
anzufordern .Requires=mysql.serviceSpeichern 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.serviceAutostart beim Systemstart aktivieren.
sudo systemctl enable mailtrain.serviceJetzt, 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 nginxNun 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.confSuchen Sie die folgende Zeile.
Servername mailtrain.org www.mailtrain.org;Ändern Sie den Wert von
server_name
Parameter zu Ihrem eigenen Domainnamen wienewsletter.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 -tWenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.
sudo systemctl reload nginxSie 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.tomlIm
[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=trueSpeichern und schließen Sie die Datei. Starten Sie dann Mailtrain neu, damit die Änderung wirksam wird.
sudo systemctl mailtrain neu startenSchritt 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-nginxDann 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
Hinweis:Das Admin-Konto ist ein leichtes Ziel für Hacker. Für beste Sicherheit wird empfohlen, dass Sie den Benutzernamen vonadmin
an und Passworttest
. Ändern Sie dann die E-Mail-Adresse und das Passwort Ihres Kontos. Gehen Sie zusettings
Seite, um die Standardkonfigurationen zu ändern. Sie sollten die Dienstadresse vonhttp://localhost:3000/
ändern zu Ihrer Subdomain (https://newsletter.your-domain.com
).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 imSMTP
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
ausBeenden;
Ö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
undsubscription__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 nginxSie müssen sich die Anmelde-URL von Mailtrain merken.
https://newsletter.ihre-domain.com/users/loginStandardmäßig leitet Sie die Anmeldeschaltfläche zur Mailtrain-Startseite weiter, sodass Sie sich eine andere URL merken müssen.
https://newsletter.ihre-domain.com/listsDadurch 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 derList 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 Sieradio button
auswählen (für Einfachauswahl) odercheckboxes
(bei Mehrfachauswahl). InGroup
, 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 inField Type
, und wählen Sie den vorherigen benutzerdefinierten Dateinamen inGroup
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 zumradio 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.sqlMelden Sie sich dann beim MariaDB-Datenbankserver an.
sudo mysql -u rootVerwenden 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: