GNU/Linux >> Znalost Linux >  >> Ubuntu

Nainstalujte si Mailtrain Self-Hosted Newsletter App na Ubuntu 16.04 Server

Tento tutoriál vám ukáže, jak nainstalovat Mailtrain na server Ubuntu 16.04. 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 odesílání e-mailů odběratelům e-mailu 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.).

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

Předpoklady instalace Mailtrain na serveru Ubuntu 16.04

Ke spuštění Mailtrain potřebujete server s alespoň 1 GB RAM. Kliknutím na tento speciální odkaz získáte kredit 100 $ zdarma na DigitalOcean. (Pouze pro nové uživatele). Pokud již jste uživatelem DigitalOcean, můžete kliknout na tento speciální odkaz a získat kredit 50 $ zdarma na Vultr (pouze pro nové uživatele). Jakmile budete mít účet u DigitalOcean nebo Vultr, nainstalujte si Ubuntu 16.04 na svůj server a postupujte podle pokynů níže.

Musíte mít také název domény. Zaregistroval jsem si název domény u NameCheap, protože cena je nízká a poskytují ochranu soukromí whois zdarma.

Krok 1:Instalace databázového serveru 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.

Zadejte následující příkaz a nainstalujte jej na Ubuntu 16.04.

sudo apt install mariadb-server mariadb-client

Po instalaci by se měl server MariaDB automaticky spustit. Použijte systemctl zkontrolovat jeho stav.

stav systemctl mysql

Ukázkový výstup:

● mariadb.service – databázový server MariaDB 10.1.34 Načteno:načteno (/lib/systemd/system/mariadb.service; povoleno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od So 2018-09-08 11 :13:27 UTC; Před 21 s Dokumenty:man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Hlavní PID:3473 (mysqld) Stav:„Teď se berou vaše požadavky SQL...“ Úkoly:27 (limit :505) CGroup:/system.slice/mariadb.service └─3473 /usr/sbin/mysqld

Pokud neběží, spusťte jej tímto příkazem:

sudo systemctl spustit mysql

Chcete-li povolit automatické spouštění MariaDB při spouštění systému, spusťte

sudo systemctl povolit mysql

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

Krok 2: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 mysql -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.)

vytvořit databázový 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 mtuseryour-password s vaším preferovaným uživatelským jménem a heslem.

udělte všechna oprávnění na mailtrain.* na adresu mtuser@localhost identifikovanou pomocí '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 .

udělit výběr na mailtrain.* TOMU mt_readonly@localhost identifikovanému pomocí 'mt_readonly_password';

Vypláchněte tabulku oprávnění, aby se změny projevily, a poté opusťte konzolu MariaDB.

vyprázdnit oprávnění;exit;

Krok 3: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 16.04. Mailtrain vyžaduje Node.js 7+. Tento tutoriál nainstaluje aktuální verzi LTS Node.js (V8.x) z úložiště NodeSource.

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

nodejs balíček obsahuje binární soubor npm (správce balíčků Node.js), takže jej není třeba instalovat samostatně. Chcete-li zkontrolovat verzi Node.js a npm, spusťte

node -vnpm -v

Výstup:

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 4:Spusťte Mailtrain

Přejděte na /var/www/ a načíst soubory Mailtrain z Github.

cd /var/www/sudo git klon 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 .

mysql -u mtuser -p mailtrain  

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="Nahradit toto některými náhodnými znaky"[mysql]user="mtuser"password="mtuser_password"[fronta] procesy=5

Uložte a zavřete soubor. Poté vytvořte mailtrain uživatele a skupinu, aby démon mailtrain běžel 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/ -Rsudo chmod o-rwx /var/www/mailtrain/config/

A nainstalujte požadované balíčky uzlů.

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

Zkopírujte soubor servisní jednotky 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

Protože jsme si stáhli Mailtrain do /var/www/mailtrain/ adresář, takže změňte pracovní adresář z /opt/mailtrain na /var/www/mailtrain . Uložte a zavřete tento soubor. Poté spusťte mailtrain.service .

sudo systemctl start mailtrain.service

Povolte automatické spouštění při spouštění systému.

sudo systemctl povolit mailtrain.service

Zkontrolujte jeho stav. Ujistěte se, že běží. Pokud výstup říká aktivace (automatický restart), počkejte několik okamžiků, než se Mailtrain spustí.

sudo systemctl status mailtrain.service

Nyní, když je Mailtrain spuštěn, můžete přistupovat k webovému rozhraní Mailtrain přes port 3000.

ip-vašeho-serveru:3000

Nastavení zpětného proxy a povolení HTTPS

Než použijete webové rozhraní Mailtrain, umístěte jej za Nginx a poté povolte HTTPS. Nainstalujte webový server Nginx na Ubuntu 16.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.

název_serveru 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 A.

název_serveru 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

Povolení HTTPS pomocí Let's Encrypt

Nainstalujte si klienta Let’s Encrypt (certbot) na svůj server Ubuntu 16.04.

sudo apt install software-properties-commonsudo add-apt-repository ppa:certbot/certbotsudo apt updatesudo 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 na vaši-e-mailovou-adresu -d newsletter.vaše-doména.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.

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

Poznámka:Účet správce je snadným cílem pro hackery. Pro nejlepší zabezpečení se doporučuje změnit uživatelské jméno z 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.

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.

Uložte nastavení. Poté můžete vytvořit seznam pro testování funkcí Mailtrain.

Jak zacházet s nedoručenými zprávami v Mailtrain

Dříve nebo později bude váš e-mailový seznam 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, budou zpracovávat 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 odběratele 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=trueport=25disablesenderheader=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, váš newsletter může 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ředávat zprávu o nedoručitelnosti 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

Uložte a zavřete soubor. Poté restartujte Postfix, aby se změna projevila.

sudo systemctl restart postfix

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.

použít poštovní vlak;

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

zobrazit tabulky jako 'subscription%';

Výstup na mém serveru.

+-------------------------------------+| Tables_in_mailtrain (předplatné %) |+-------------------------------------+| předplatné || předplatné__1 || odběr__2 |+-------------------------------------+

První tabulka je prázdná tabulka. V Mailtrain mám dva seznamy. Jsou uloženy v subscription__1 a subscription__2 stůl. E-mailové adresy přihlášených k odběru mají stavový kód nastaven na 1 . E-mailové adresy odhlášených z odběru mají stavový kód nastaven na 2 . Chcete-li tedy odstranit nepřihlášené e-mailové adresy, můžete spustit následující příkazy SQL.

DELETE Z předplatného__1 kde stav ='2';ODSTRANIT Z předplatného__2 kde stav ='2';

Chcete-li ukončit databázový server MySQL/MariaDB, spusťte

exit;

Nyní otevřete soubor crontab uživatele root.

sudo crontab -e

Přidejte následující dva řádky.

# Smazat nepřihlášené e-mailové adresy z mailing listu daily@daily /usr/bin/mysql -u root mailtrain -Bse "DELETE FROM subscribe__1 where status ='2';DELETE FROM subscribe__2 where status ='2';" 

Uložte a zavřete soubor. A máte hotovo.

Řešení se škodlivou registrací

Existují lidé, kteří nemají nic na práci, ale používají falešnou e-mailovou adresu k registraci do vašeho e-mailového seznamu, takže e-mail s potvrzením registrace bude zaslán na falešnou e-mailovou adresu a můžete dostat zprávu o nedoručeném e-mailu do vaší schránky.

Můžete použít svůj webmail jako roundcube k vytvoření filtru, který tento druh e-mailových zpráv automaticky odstraní. Na následujícím snímku obrazovky můžete vidět, že jsem vytvořil filtr, který automaticky odstraní zprávu, pokud

  • Předmět obsahuje „Nedoručená pošta vrácena odesílateli“
  • Hlášení o nedoručené zprávě je odesláno na moji adresu.
  • Tělo obsahuje „Potvrďte prosím odběr“. (Protože e-mail s potvrzením registrace obsahuje tuto frázi.)


Ubuntu
  1. Nainstalujte SSH server Ubuntu 22.04

  2. Nainstalujte MariaDB 10.1 Stable na Ubuntu 14.04

  3. Jak nainstalovat MariaDB na Ubuntu 22.04

  1. Jak nainstalovat MariaDB na Ubuntu 18.04

  2. Jak nainstalovat MariaDB na Ubuntu 20.04

  3. Jak nainstalovat Mailtrain Newsletter Software na Ubuntu 18.04

  1. Jak nainstalovat PowerDNS Server a PowerDNS Admin na Ubuntu 20.04

  2. Jak nainstalovat MariaDB na Ubuntu 18.04 / Ubuntu 16.04

  3. Nainstalujte WordPress + Apache, MariaDB a HHVM v Ubuntu 16.04