Tento tutoriál vám ukáže, jak nainstalovat Mailtrain na Ubuntu 20.04 bez Dockeru. Mailtrain je open-source samoobslužná aplikace pro newsletter, alternativa ke komerčním poskytovatelům e-mailových služeb, jako je Mailchimp. Mailtrain můžete použít k zasílání newsletterů svým e-mailovým odběratelům prostřednictvím vašeho vlastního e-mailového serveru nebo pomocí jakékoli přenosové služby SMTP (Mailjet, SendGrid, AmazonSES, Mailgun atd.).
Aktualizovat :Mailtrain V2 je vydán. Noví uživatelé by měli používat V2 namísto V1.24 :Jak nainstalovat Mailtrain v2 na server Ubuntu 20.04
Mailtrain je vydán za podmínek licence GPL v3.0, postavené na Node.js a MySQL/MariaDB. Nejnovější verze je v1.24.1, vydaná 28. září 2018. Funkce Mailtrain jsou následující:
- Umožňuje vám snadno spravovat velké seznamy adresátů (např. 1 milion odběratelů).
- Odběratele můžete přidat ručně, prostřednictvím rozhraní API nebo importovat ze souboru CSV.
- Podporuje vlastní pole (textová pole, čísla, rozevírací nebo zaškrtávací políčka), slučovací značky a vlastní formuláře.
- Segmentace seznamu.
- Kampaň RSS:automaticky generujte zpravodaj ze zdroje RSS a odešlete jej odběratelům.
- Odběratelé mohou nahrát své veřejné klíče GPG a Mailtrain za ně newsletter zašifruje.
- Umožňuje zkontrolovat jednotlivé statistiky kliknutí pro každý odkaz.
- Pokročilé editory e-mailových šablon a editor HTML kódu.
- Automatizace:odesílání konkrétních e-mailů, když uživatel aktivuje váš předdefinovaný spouštěč.
- Můžete vytvořit otevřený seznam e-mailů (povolit veřejné přihlášení k odběru) a uzavřený seznam e-mailů (odběratele do seznamu přidává správce).
- Umožňuje vám obnovit staré e-mailové kampaně (odeslat staré kampaně novým odběratelům).
Krok 1:Vyberte správného poskytovatele hostingu
Self-hosting vám může ušetřit spoustu peněz. Mailtrain je bezplatný a open source software. Stačí zaplatit 26 $ měsíčně za VPS (virtuální privátní server), na kterém lze provozovat plnohodnotný poštovní server a e-mailovou marketingovou platformu Mailtrain. Snadno zvládne miliony předplatitelů. Vaše celkové náklady jsou vždy 26 $ měsíčně bez ohledu na to, kolik máte odběratelů . Pokud vlastníte miliony předplatitelů na MailChimp, náklady by byly tisíce dolarů měsíčně.
Najít poskytovatele VPS (Virtual Private Server) vhodného pro e-mailový hosting a e-mailový marketing není snadný úkol. Mnoho hostingových společností, jako je DigitalOcean, blokuje port 25. DigitalOcean neodblokuje port 25, takže budete muset nastavit přenos SMTP, abyste obešli blokování, což vás může stát další peníze. Pokud používáte Vultr VPS, pak je port 25 ve výchozím nastavení blokován. Mohou jej odblokovat, pokud otevřete lístek podpory, ale mohou jej kdykoli znovu zablokovat, pokud usoudí, že vaše aktivita při odesílání e-mailů není povolena. Vultr jej může ve skutečnosti znovu zablokovat, pokud používáte jejich servery k zasílání newsletterů.
Dalším problémem je, že velcí známí poskytovatelé hostingu jako DigitalOcean nebo Vultr jsou zneužíváni spammery. IP adresa serveru je často na několika blacklistech. Vultr má některé celé rozsahy IP na černé listině.
ScalaHosting je velmi dobrá možnost provozovat poštovní server, protože
- Neblokují port 25.
- Adresa IP není na seznamu zakázaných e-mailů. (Alespoň to platí v mém případě. Vybral jsem si datové centrum Dallas.) Rozhodně nechcete být uvedeni na obávané černé listině IP aplikace Microsoft Outlook nebo na černé listině SpamRats. Některé černé listiny blokují celý rozsah IP adres a nemáte žádný způsob, jak odstranit svou IP adresu z tohoto druhu černých listin.
- Záznam PTR můžete upravit, abyste zlepšili doručování e-mailů.
- Umožňují vám zasílat newslettery odběratelům e-mailů s ne hodinové limity nebo denní limity. Upozorňujeme, že nemáte povoleno rozesílat spam, známý také jako nevyžádaný hromadný email. Pokud vám příjemce výslovně neudělí povolení k odesílání e-mailů a vy mu posíláte e-maily, jedná se o nevyžádaný e-mail.
Pro správné nastavení serveru Linux VPS na ScalaHosting doporučuji postupovat podle níže uvedeného návodu. Použijte kód kupónu linuxbabe2021
na platební stránce ScalaHosting a ušetříte 100 $ pokud se rozhodnete platit 12 měsíců předem.
- Jak vytvořit Linux VPS server na ScalaHosting
Potřebujete také název domény. Zaregistroval jsem své doménové jméno od NameCheap, protože cena je nízká a poskytují vám ochranu soukromí whois doživotně zdarma.
Pokud ještě nemáte svůj vlastní poštovní server, doporučuji použít bezplatný program iRedMail k rychlému nastavení vlastního poštovního serveru před instalací Mailtrain, abyste nemuseli utrácet peníze za komerční přenosovou službu SMTP.
Krok 2:Nainstalujte databázový server MariaDB
Údaje o vašich předplatitelích budou uloženy v databázi. Mailtrain podporuje MySQL a MariaDB. MariaDB je drop-in náhrada za MySQL. Je vyvinut bývalými členy týmu MySQL, kteří se obávají, že by Oracle mohl změnit MySQL na uzavřený produkt. Pojďme tedy nainstalovat databázový server MariaDB.
Chcete-li jej nainstalovat na Ubuntu 20.04, zadejte následující příkaz.
sudo apt install mariadb-server mariadb-client
Po instalaci by se měl server MariaDB automaticky spustit. Použijte systemctl zkontrolovat jeho stav.
systemctl status mariadb
Ukázkový výstup:
● mariadb.service - MariaDB 10.3.22 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: e> Active: active (running) since Mon 2020-04-20 15:31:14 HKT; 52s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 1826628 (mysqld) Status: "Taking your SQL requests now..." Tasks: 30 (limit: 9451) Memory: 73.0M CGroup: /system.slice/mariadb.service └─1826628 /usr/sbin/mysqld
Pokud neběží, spusťte jej tímto příkazem:
sudo systemctl start mariadb
Chcete-li povolit automatické spouštění MariaDB při spouštění systému, spusťte
sudo systemctl enable mariadb
Nyní spusťte bezpečnostní skript po instalaci.
sudo mysql_secure_installation
Až budete požádáni o zadání rootovského hesla MariaDB, stiskněte klávesu Enter, protože heslo root ještě není nastaveno. Poté zadejte y
pro nastavení hesla uživatele root pro server MariaDB.
Dále můžete stisknout Enter pro zodpovězení všech zbývajících otázek, což odstraní anonymního uživatele, zakáže vzdálené přihlášení root a odstraní testovací databázi. Tento krok je základním požadavkem pro zabezpečení databáze MariaDB. (Všimněte si, že písmeno Y
je velká, což znamená, že se jedná o výchozí odpověď.)
Zkontrolujte informace o verzi serveru MariaDB.
mariadb --version
Výstup:
mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Krok 3:Vytvořte databázi a uživatele pro Mailtrain
Nyní se musíme přihlásit do konzole MariaDB a vytvořit databázi a uživatele pro Mailtrain. Ve výchozím nastavení používá balíček MaraiDB na Ubuntu unix_socket k ověření přihlášení uživatele, což v podstatě znamená, že můžete použít uživatelské jméno a heslo operačního systému pro přihlášení do konzoly MariaDB. Můžete tedy spustit následující příkaz a přihlásit se bez zadání hesla root MariaDB.
sudo mariadb -u root
Vytvořte databázi pro Mailtrain pomocí následujícího příkazu. Pojmenoval jsem to mailtrain
, ale můžete použít jakýkoli název, který chcete. (Nevynechávejte středník.)
create database mailtrain;
Poté zadejte příkaz níže, abyste vytvořili databázového uživatele pro Mailtrain a udělili uživateli všechna oprávnění k databázi mailtrain. Nahraďte mtuser
a your-password
s vaším preferovaným uživatelským jménem a heslem.
grant all privileges on mailtrain.* to mtuser@localhost identified by 'mtuser_password';
Dále vytvořte uživatele s přístupem pouze pro čtení k databázi mailtrain. Tohoto uživatele jsem pojmenoval mt_readonly
.
grant select on mailtrain.* TO mt_readonly@localhost identified by 'mt_readonly_password';
Vypláchněte tabulku oprávnění, aby se změny projevily, a poté opusťte konzolu MariaDB.
flush privileges; exit;
Krok 4:Nainstalujte Node.js
Mailtrain je postaven na Node.js, což je běhové prostředí JavaScriptu, které převádí lidsky čitelný kód JavaScript do strojového kódu. Abychom mohli spustit Mailtrain, musíme nainstalovat Node.js na Ubuntu 20.04. Mailtrain vyžaduje Node.js 7+. Nejnovější verze Node.js je v14. Nedoporučuji však používat nejnovější verzi, protože není kompatibilní s Mailtrain v1.24. Pro nejlepší kompatibilitu doporučuji nainstalovat Node.js 8 ze Snap Store.
Pokud jste nainstalovali Node.js z oficiálního úložiště APT, musíte jej odinstalovat, protože by to narušovalo verzi Node.js Snap.
sudo apt remove nodejs
Dále nainstalujte démona snap.
sudo apt install snapd
V obchodě Snap Store je několik verzí Node.js, které lze zobrazit pomocí:
snap info node
Výstup:
channels: latest/stable: – latest/candidate: – latest/beta: – latest/edge: 15.0.0-nightly2020042524a4e615 2020-04-25 (2668) 30MB classic 14/stable: 14.0.0 2020-04-23 (2647) 30MB classic 14/candidate: ↑ 14/beta: ↑ 14/edge: ↑ 13/stable: 13.13.0 2020-04-14 (2635) 29MB classic 13/candidate: ↑ 13/beta: ↑ 13/edge: ↑ 12/stable: 12.16.2 2020-04-23 (2644) 21MB classic 12/candidate: ↑ 12/beta: ↑ 12/edge: ↑ 11/stable: 11.15.0 2019-06-26 (2336) 19MB classic 11/candidate: ↑ 11/beta: ↑ 11/edge: ↑ 10/stable: 10.20.1 2020-04-23 (2638) 20MB classic 10/candidate: ↑ 10/beta: ↑ 10/edge: ↑ 9/stable: 9.11.2 2018-12-14 (1407) 17MB classic 9/candidate: ↑ 9/beta: ↑ 9/edge: ↑ 8/stable: 8.16.0 2019-06-24 (2310) 16MB classic 8/candidate: ↑ 8/beta: ↑ 8/edge: ↑ 6/stable: 6.17.1 2019-06-24 (2311) 13MB classic 6/candidate: ↑ 6/beta: ↑ 6/edge: ↑
Můžeme nainstalovat Node.js z kanálu 8/stable.
sudo snap install node --classic --channel=8/stable
Chcete-li zkontrolovat verzi Node.js a npm, spusťte
node -v npm -v
Výstup:
Poznámka :Pokud je to poprvé, co instalujete balíček Snap na server, musíte se odhlásit a znovu přihlásit, abyste mohli používat Snap verzi Ruby.
Chcete-li zkompilovat a nainstalovat nativní doplňky z npm, musíte také nainstalovat nástroje pro sestavení:
sudo apt install -y build-essential
Krok 5:Spusťte Mailtrain
Přejděte na /var/www/
a načíst soubory Mailtrain z Github.
cd /var/www/ sudo git clone https://github.com/Mailtrain-org/mailtrain.git
Importujte počáteční data SQL do databáze poštovního vlaku pomocí následujícího příkazu. Musíte zadat heslo mtuser
.
mariadb -u mtuser -p mailtrain < /var/www/mailtrain/setup/sql/mailtrain.sql
Vytvořte konfigurační soubor production.toml.
sudo nano /var/www/mailtrain/config/production.toml
V tomto souboru můžete přidat konfigurace, které přepíší výchozí konfigurace v /var/www/mailtrain/config/default.toml
soubor. Potřebujeme přidat pouze následující konfigurace.
user="mailtrain" group="mailtrain" [log] level="error" [www] secret="Replace this with some random characters" [mysql] user="mtuser" password="mtuser_password" [queue] processes=5
Uložte a zavřete soubor. Poté vytvořte mailtrain
uživatel a skupina pro démona mailtrain, který bude spuštěn jako. Všimněte si, že pro tohoto uživatele nemusíme vytvářet heslo, takže místo běžného uživatele vytvoříme systémového uživatele.
sudo adduser --system --group mailtrain
Vytvořte konfigurační soubor pro pracovníka sestavy.
sudo nano /var/www/mailtrain/workers/reports/config/production.toml
Přidejte následující konfigurace. Tento pracovník sestavy bude mít přístup pouze pro čtení k databázi mailtrain.
[log] level="error" [mysql] user="mt_readonly" password="mt_readonly_password"
Uložte a zavřete soubor. Poté změňte oprávnění /var/www/mailtrain/
.
sudo chown mailtrain:mailtrain /var/www/mailtrain/ -R sudo chmod o-rwx /var/www/mailtrain/config/
Nainstalujte Python2.7 a vytvořte symbolický odkaz.
sudo apt install python2.7 sudo ln -s /usr/bin/python2.7 /usr/bin/python
A nainstalujte požadované balíčky uzlů.
cd /var/www/mailtrain sudo -u mailtrain npm config set scripts-prepend-node-path true sudo -u mailtrain npm install --no-progress --production --unsafe-perm=true
Zkopírujte soubor servisní jednotky Mailtrain systemd do /etc/systemd/system/
adresář.
sudo cp /var/www/mailtrain/setup/mailtrain.service /etc/systemd/system/
Otevřete tento soubor.
sudo nano /etc/systemd/system/mailtrain.service
Změňte /opt/mailtrain
na /var/www/mailtrain
. A změňte /usr/bin/node
na /snap/bin/node
protože používáme Snap verzi Node.js.
Můžete také chtít okomentovat následující řádek. Protože s povoleným následujícím řádkem, pokud se MySQL/MariaDB restartuje, pak mailtrain.service
se také restartuje, a pokud se upgraduje server MySQL/MariaDB, pak mailtrain.service
se zastaví. Myslím, že není potřeba vyžadovat mysql.service
.
Requires=mysql.service
Uložte a zavřete tento soubor. Poté spusťte mailtrain.service
.
sudo systemctl start mailtrain.service
Zkontrolujte jeho stav. Ujistěte se, že běží.
systemctl status mailtrain.service
Výstup:
● mailtrain.service - Mailtrain server Loaded: loaded (/etc/systemd/system/mailtrain.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2020-04-26 10:26:37 HKT; 11s ago 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
Povolte automatické spouštění při spouštění systému.
sudo systemctl enable mailtrain.service
Nyní, když je Mailtrain spuštěn, můžete přistupovat k webovému rozhraní Mailtrain přes port 3000.
your-server-ip:3000
Krok 6:Nastavte reverzní proxy a povolte HTTPS
Než použijete webové rozhraní Mailtrain, umístěte jej za Nginx a poté povolte HTTPS. Nainstalujte webový server Nginx na Ubuntu 20.04 pomocí:
sudo apt install nginx
Nyní můžete zkopírovat příklad mailtrain-nginx.conf
soubor do /etc/nginx/conf.d/
adresář.
sudo cp /var/www/mailtrain/setup/mailtrain-nginx.conf /etc/nginx/conf.d/
Otevřete tento soubor.
sudo nano /etc/nginx/conf.d/mailtrain-nginx.conf
Najděte následující řádek.
server_name mailtrain.org www.mailtrain.org;
Změňte hodnotu server_name
parametr na název vaší vlastní domény jako newsletter.your-domain.com
. Nezapomeňte pro tuto subdoménu vytvořit záznam DNS A.
server_name newsletter.linuxbabe.com;
Uložte a zavřete soubor. Poté otestujte konfigurace Nginx.
sudo nginx -t
Pokud bude test úspěšný, znovu načtěte Nginx, aby se změny projevily.
sudo systemctl reload nginx
Nyní byste měli mít přístup k webovému rozhraní Mailtrain prostřednictvím své subdomény:newsletter.your-domain.com
.
Nyní upravte /var/www/mailtrain/config/production.toml
soubor.
sudo nano /var/www/mailtrain/config/production.toml
V [www]
přidejte následující dva řádky, abyste označili, že poštovní vlak je za proxy serverem Nginx, a nechte jej naslouchat pouze na adrese místního hostitele.
host="127.0.0.1" proxy=true
Uložte a zavřete soubor. Poté restartujte Mailtrain, aby se změna projevila.
sudo systemctl restart mailtrain
Krok 7:Povolte HTTPS pomocí Let’s Encrypt
Nainstalujte si klienta Let’s Encrypt (certbot) na svůj server Ubuntu 20.04.
sudo apt install certbot python3-certbot-nginx
Poté můžete pomocí pluginu Nginx automaticky získat a nainstalovat certifikát TLS provedením následujícího příkazu.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d newsletter.your-domain.com
Nyní můžete přistupovat k webovému rozhraní Mailtrain prostřednictvím názvu vaší domény a zabezpečeného připojení HTTPS.
htop
mi říká, že můj server používá asi 500 MB RAM. Pokud spustím Mailtrain s Dockerem, je to asi 900 MB.
Přihlaste se pomocí uživatelského jména admin
a heslo test
. Poté změňte e-mailovou adresu a heslo svého účtu. Přejděte do settings
stránku pro změnu výchozí konfigurace. Adresu služby byste měli změnit z http://localhost:3000/
do vaší subdomény (https://newsletter.your-domain.com
).
admin
na něco jiného. Webové rozhraní Mailtrain takovou možnost nenabízí, ale můžete změnit uživatelské jméno v databázi MariaDB pomocí příkazu SQL.
V Mailer Settings
, můžete použít SMTP, pokud máte vlastní e-mailový server nebo používáte Amazon SES. Ve skutečnosti můžete v SMTP
použít i jiné přenosové služby SMTP tab. Na níže uvedeném snímku obrazovky používám svůj vlastní e-mailový server. E-maily budou odesílány na portu 587 se šifrováním STARTTLS.
Pokud je na vašem e-mailovém serveru nainstalován Mailtrain, měli byste použít následující nastavení SMTP. Název hostitele by měl být 127.0.0.1 a port by měl být 25. Při komunikaci s místním hostitelem není nutné povolovat šifrování ani ověřování.
Uložte nastavení. Poté můžete vytvořit seznam pro testování funkcí Mailtrain.
Jak povolit mezipaměť Redis
Můžete nainstalovat server Redis pro mezipaměť relace. To umožní Mailtrain spouštět 5 procesů místo výchozího jediného procesu, což urychlí doručování e-mailů, pokud máte hodně e-mailových odběratelů (Všimněte si, že to zvýší využití paměti, například asi 250 MB).
sudo apt install redis
Po instalaci by se měl Redis automaticky spustit. Jeho stav můžete zkontrolovat pomocí:
systemctl status redis
Ukázkový výstup:
● redis-server.service - Advanced key-value store Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-04-26 11:02:03 HKT; 4min 23s ago Docs: http://redis.io/documentation, man:redis-server(1) Main PID: 3059455 (redis-server) Tasks: 4 (limit: 9451) Memory: 2.3M CGroup: /system.slice/redis-server.service └─3059455 /usr/bin/redis-server 127.0.0.1:6379
Pokud neběží, můžete jej spustit pomocí:
sudo systemctl start redis
Povolit automatické spouštění při spouštění:
sudo systemctl enable redis
Dále upravte konfigurační soubor Mailtrain.
sudo nano /var/www/mailtrain/config/production.toml
Přidejte následující dva řádky na konec souboru, abyste povolili Redis.
[redis] enabled=true
Uložte a zavřete soubor. Poté restartujte Mailtrain.
sudo systemctl restart mailtrain
Jak zacházet s nedoručenými zprávami v Mailtrain
Dříve nebo později bude váš seznam e-mailů obsahovat adresy, na které nemůžete posílat e-maily. Když například předplatitel, který používá firemní e-mailovou adresu, opustí společnost, bude tato e-mailová adresa smazána. Váš e-mailový server tedy obdrží vrácenou zprávu o tom, že e-mail nelze doručit.
Pokud k odesílání e-mailů používáte přenosovou službu SMTP, zpracují vrácené zprávy za vás. Pokud k odesílání e-mailů používáte svůj vlastní e-mailový server, musíte zprávy o nedoručení zpracovávat v Mailtrain. Mailtrain nabízí dva způsoby, jak zacházet s nedoručenými zprávami.
- přes VERP
- prostřednictvím protokolu Postfix
Osobně používám metodu VERP, protože je široce používána v e-mailové komunitě a také proto, že druhá metoda způsobuje vysoké využití procesoru na mém serveru.
VERP Bounce Handling
S VERP (variabilní návratová cesta obálek) používá správce seznamu e-mailů pro každého předplatitele jedinečné adresy obálek. Chcete-li povolit VERP, upravte soubor production.toml
soubor.
sudo nano /var/www/mailtrain/config/production.toml
Pokud váš hostitel Mailtrain nemá spuštěný žádný SMTP server, přidejte následující text.
[verp] enabled=true port=25 disablesenderheader=true
Pokud váš server Mailtrain má spuštěný server SMTP, jako je Postfix, přidejte následující text. Server pro zpracování nedoručených zpráv bude naslouchat na 127.0.0.1:2525
.
[verp] enabled=true port=2525 host="127.0.0.1" disablesenderheader=true
Uložte a zavřete soubor. Poté restartujte Mailtrain, aby se změny projevily.
sudo systemctl restart mailtrain
Ve webovém rozhraní Mailtrain přejděte do Settings
-> VERP Bounce Handlding
. Zaškrtněte Use VERP to catch bounces
. Uložte nastavení.
Dále je třeba vytvořit záznam MX pro název hostitele serveru (bounces.your-domain.com
), pak přidejte záznam pro tento název hostitele, který ukazuje na vašeho hostitele Mailtrain, aby bylo možné odesílat zprávy o nedoručitelnosti vašemu hostiteli Mailtrain. Každý odběratel ve vašem seznamu bude mít jedinečnou obálkovou adresu, například [email protected]
.
Všimněte si, že pokud jste nasadili záznam DMARC pro název své domény, musí být zarovnání SPF nastaveno na uvolněný režim. Pokud je nastaven na přísný režim, může váš newsletter selhat při kontrole DMARC.
Pokud server pro zpracování nedoručených zpráv Mailtrain naslouchá na portu 2525 z 127.0.0.1 a server Postfix SMTP naslouchá na portu 25 veřejné IP adresy, musíte nastavit transportní mapu, aby Postfix mohl předat zprávu o nedoručení Mailtrain. Vytvořte soubor transportní mapy.
sudo nano /etc/postfix/transport
Přidejte do tohoto souboru následující řádek. To Postfixu říká, aby předával e-maily s adresou jako [email protected]
na server pro zpracování nedoručených zpráv Mailtrain.
bounces.your-domain.com smtp:[127.0.0.1]:2525
Uložte a zavřete soubor. Poté vygenerujte soubor indexu.
sudo postmap /etc/postfix/transport
Upravte hlavní konfigurační soubor Postfixu.
sudo nano /etc/postfix/main.cf
Přidejte do souboru následující řádek.
transport_maps = hash:/etc/postfix/transport
Poznámka:Pokud jste k nastavení poštovního serveru použili iRedMail, pak transport_maps
parametr má nějaké jiné hodnoty. Hodnotu byste měli připojit na konec, jak je uvedeno níže.
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
Uložte a zavřete soubor. Poté restartujte Postfix, aby se změna projevila.
sudo systemctl restart postfix
Zpracování vrácených zpráv prostřednictvím protokolu Postfix
To předpokládá, že Mailtrain je nainstalován na vašem e-mailovém serveru.
Mailtrain je schopen detekovat vrácené zprávy z poštovního protokolu Postfixu nalezením řádků, které obsahují status=bounced
. Nejprve musíte povolit server pro čtení protokolů Postfixu. Upravte soubor production.toml
soubor.
sudo nano /var/www/mailtrain/config/production.toml
Přidejte následující text.
[postfixbounce] enabled=true
Uložte a zavřete soubor. Poté restartujte Mailtrain, aby se změny projevily.
sudo systemctl restart mailtrain
Nyní server pro čtení protokolu Postfixu naslouchá na 127.0.0.1:5699. Chcete-li mu umožnit číst protokol Postfixu, spusťte následující příkaz.
tail -F /var/log/mail.log | nc localhost 5699 -
Chcete-li jej spustit na pozadí, můžete vytvořit servisní jednotku systemd.
sudo nano /etc/systemd/system/bouncetail.service
Přidejte následující text.
[Unit] Description=Postfix bounce notifier After=mailtrain.service [Service] ExecStart=/bin/sh -c '/usr/bin/tail -F /var/log/mail.log | nc localhost 5699 -' Type=simple Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
Uložte a zavřete soubor. Poté spusťte tuto službu a povolte automatické spouštění při spouštění.
sudo systemctl start bouncetail sudo systemctl enable bouncetail
Po restartování služby mailtrain nezapomeňte restartovat službu bouncetail. Zjistil jsem, že služba bouncetail způsobuje vysoké využití CPU na mém serveru, takže tuto metodu nepoužívám.
Aktualizovat
Po nějaké době používání Mailtrain na mém vlastním serveru jsem zjistil, že jsou to další důvody, které způsobují vracení e-mailů. Následují měkké odrazy.
- Poštovní schránka příjemce je plná.
- Vaše IP adresa je na černé listině.
- E-mailový server příjemce je mimo provoz nebo je offline.
Dochází také k tvrdému vracení, tj. e-mailová adresa příjemce neexistuje. Ve výchozím nastavení Mailtrain odhlásí odběr e-mailové adresy, pokud je detekováno jedno nedoručení, což je v pořádku pro tvrdé nedoručení, ale je dobré povolit několik měkkých zpětných zpráv, než odhlásíte chybnou e-mailovou adresu. Můžete požádat přijímající e-mailový server, aby odstranil vaši IP adresu z černé listiny a poté se znovu přihlásil k odběru související e-mailové adresy.
Nahrávání obrázků do Mailtrain
Chcete-li nahrát obrázky do Mailtrain, musíte si nainstalovat imagemagick
balík. Bez něj může Mailtrain při nahrávání obrázků generovat chyby.
sudo apt install imagemagick
Jak vložit registrační formulář na svůj web
Nejprve musíte povolit sdílení zdrojů mezi zdroji. Upravte soubor production.toml
soubor.
sudo nano /var/www/mailtrain/config/production.toml
Přidejte do souboru následující řádek a přidejte svůj web na seznam povolených.
[cors] # Allow subscription widgets to be embedded origins=['https://www.example.com']
Uložte a zavřete soubor. Poté restartujte Mailtrain, aby se změna projevila.
sudo systemctl restart mailtrain
Poté přidejte na svůj web následující kód, aby se zobrazil registrační formulář. Nahraďte červený text názvem domény Mailtrain a vlastním ID seznamu.
<div data-mailtrain-subscription-widget data-url="https://newsletter.example.com/subscription/8ljDT9KMGr/widget"> <a href="https://newsletter.example.com/subscription/8ljDT9KMGr">Subscribe to our list</a> </div> <script src="https://newsletter.example.com/subscription/widget.js"></script>
Poté přidejte vlastní pravidla CSS, aby byl vizuálně přitažlivější.
Jak vytvořit další uživatele v Mailtrain
Mailtrain v2 umožní správci vytvořit více uživatelů s podrobnými uživatelskými oprávněními a flexibilním sdílením. Ale s aktuální verzí v.1.24.1 můžete vytvářet uživatele pouze prostřednictvím databáze. Přihlaste se do konzole MySQL/MariaDB.
sudo mysql -u root
Použijte mailtrain
databáze.
USE mailtrain;
Poté vytvořte uživatelský záznam pomocí následujícího příkazu SQL.
INSERT INTO `users` (`username`, `password`, `email`, `access_token`, `reset_token`, `reset_expire`, `created`) VALUES ('your-username',PASSWORD("your-password"),'[email protected]',NULL,NULL,NULL,NOW());
Ukončete databázový server.
EXIT;
Zjistil jsem, že takto vytvoření uživatelé se nemohou poprvé přihlásit do webového rozhraní Mailtrain. Uživatelé musí použít odkaz „zapomenuté heslo“ na přihlašovací stránce k resetování svého hesla, poté by přihlášení mělo fungovat. Všimněte si také, že všichni uživatelé mají oprávnění správce ve webovém rozhraní Mailtrain.
Jak importovat seznam e-mailů z MailChimp
Nejprve musíte přejít do Audience
na hlavním panelu MailChimp. Klikněte na View Contacts
tlačítko pro zobrazení všech odběratelů. Poté klikněte na Export Audience
pro export seznamu jako souboru CSV.
Poté přejděte na řídicí panel Mailtrain a vyberte svůj seznam e-mailů. Vyberte List Actions
a klikněte na Import Subscribers
.
Na další stránce budete muset nahrát soubor CSV stažený z MailChimp.
Poté musíte přiřadit pole v MailChimpu k polím v seznamu e-mailů Mailtrain. Pokud některá pole v MailChimpu neexistují v seznamu e-mailů Mailtrain, můžete je vytvořit v řídicím panelu Mailtrain.
Vezměte prosím na vědomí, že pokud vaše pole MailChimp obsahují přepínače, měli byste také vytvořit přepínače v polích Mailtrain. Musíte však svůj seznam MailChimp segmentovat na základě hodnoty přepínače, poté tyto segmenty exportovat do různých souborů CSV a importovat je do Mailtrain po segmentech. Je to proto, že Mailtrain neposkytuje způsob, jak porovnat hodnoty jednotlivých přepínačů z MailChimp.
Cron Job pro automatické čištění odhlášených e-mailových adres
Nepřihlášené e-mailové adresy můžete ručně odstranit na panelu webového administrátora Mailtrain, ale mnohem efektivnější je odstranit je pomocí příkazů MySQL/MariaDB, pak stačí vytvořit úlohu Cron, která tuto úlohu zautomatizuje.
Nejprve se přihlaste k databázovému serveru MySQL/MariaDB.
sudo mysql -u root
Poté se připojte k databázi poštovního vlaku.
use mailtrain;
Údaje o předplatitelích jsou uloženy v subscription
tabulky. Pokud máte několik e-mailových konferencí, budete mít několik subscription
tabulky. Všechny tyto tabulky můžete vypsat pomocí následujícího příkazu SQL.
show tables like 'subscription%';
Výstup na mém serveru.
+-------------------------------------+ | Tables_in_mailtrain (subscription%) | +-------------------------------------+ | subscription | | subscription__1 | | subscription__2 | +-------------------------------------+
The first table is an empty table. I have two lists in Mailtrain. They are stored in subscription__1
and subscription__2
table. Subscribed email addresses have status code set to 1
. Unsubscribed email addresses have status code set to 2
. So, to delete unsubscribed email addresses, you can run the following SQL commands.
DELETE FROM subscription__1 where status = '2'; DELETE FROM subscription__2 where status = '2';
To exit MySQL/MariaDB database server, run
exit;
Now open the root user’s crontab file.
sudo crontab -e
Add the following two lines.
# Delete unsubscribed email addresses from mailing list daily @daily /usr/bin/mysql -u root mailtrain -Bse "DELETE FROM subscription__1 where status = '2';DELETE FROM subscription__2 where status = '2';"
Uložte a zavřete soubor. And you’re done.
How to Export Your Email Lists in Mailtrain
There’s no export button in the Mailtrain admin panel. However, if you have installed phpMyAdmin on the server, you can export your email lists from there. Select the mailtrain database in phpMyAdmin, then select the table that stores your email lists. In my case, the subscription__1
and subscription__2
tables store subscribers’ information.
Then click the export
button to save the table as a file. Note that there are 2 export buttons. You need to click the second export button to export the entire table. The first export button will only export the current visible records in the table.
Next, you can choose the file format for the export file. Finally, click the Go button.
How to Hide the Mailtrain Home Page
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; }
Uložte a zavřete soubor. 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
databáze.
USE mailtrain;
All custom fields are stored in the custom_fields
table. 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.
EXIT;
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.