Uncategorized

Hoe Mailtrain nieuwsbrief applicatie te installeren op CentOS 7

 

Mailtrain is een open-source, zelf-gehoste nieuwsbrieftoepassing geschreven op Node.js. Het gebruikt een zeer populaire Node.js-bibliotheek Nodemailer om de e-mails te verzenden. Het biedt een uitstekende automatisering en analyse zonder kosten. U kunt eenvoudig een e-maillijst van een miljoen e-mailadressen maken of importeren met behulp van CSV-bestandsimport. Het ondersteunt ook aangepaste velden en formulieren. Het biedt automatisering via triggers, die specifieke berichten naar specifieke gebruikers kunnen sturen wanneer de actie wordt geactiveerd. U kunt elke e-mailprovider gebruiken om de nieuwsbrief te verzenden die het SMTP-protocol ondersteunt, samen met ondersteuning voor Amazon SES, ZoneMTA, SendGrid en Mailgun enz. Het biedt meerdere WYSIWYG-editors om prachtige sjablonen voor nieuwsbrieven te maken.

In deze zelfstudie installeren we Mailtrain samen met alle vereiste afhankelijkheden van CentOS 7. We zullen Nginx ook instellen als reverse proxy om de applicatie op de standaard HTTP-poort te serveren.

Voorwaarden

Metabase vereist ten minste 1GB RAM. Alle vereiste afhankelijkheden worden tijdens de zelfstudie geïnstalleerd. U hebt een minimale installatie van CentOS 7 nodig met root-toegang erop. Als u bent aangemeld als niet-rootgebruiker, kunt u sudo -i uitvoeren om over te schakelen naar rootgebruiker.

Werk het basissysteem bij

Voordat u een pakket installeert, is het raadzaam om de pakketten en de repository bij te werken met behulp van de volgende opdracht.

yum -y update

Installeer Node.js

Node.js is vereist door Mailtrain omdat het is gebouwd met Nodemailer. Node.js is een erg populaire JavaScript-runtime en Nodemailer is een module voor Node.js-applicaties om e-mails te verzenden.

Node.js 8.x-repository toevoegen:

curl –silent –location https://rpm.nodesource.com/setup_8.x | sudo bash -

Node.js. installeren

yum - installeer nodejs

MariaDB installeren

Om de Mailtrain-database op te slaan, moeten we MariaDB installeren. MariaDB is een vork van MySQL
Installeer de MariaDB-repository in uw systeem.

nano /etc/yum.repos.d/mariadb.repo

Voeg de volgende regels toe aan het bestand.

[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey = https: //yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck = 1

Installeer nu de MariaDB door te draaien.

yum -y installeer mariadb-server mariadb

Om MariaDB te starten en in te schakelen om te starten bij het opstarten met behulp van de volgende opdrachten.

systemctl start mariadb
systemctl enable mariadb

Voer nu de volgende opdrachten uit om uw MySQL- of MariaDB-installatie te beveiligen.

mysql_secure_installation

Het zal een klein script uitvoeren dat je vraagt ​​om het root-wachtwoord voor MariaDB op te geven. Omdat we zojuist MariaDB hebben geïnstalleerd, is het root-wachtwoord niet ingesteld, druk gewoon op enter om verder te gaan. Het zal u vragen of u een root-wachtwoord voor uw MariaDB-installatie wilt instellen, y wilt kiezen en een sterk wachtwoord voor de installatie wilt instellen. Het zal u ook vragen om het verwijderen van testdatabases en anonieme gebruikers. De meeste vragen spreken voor zich en u moet ja of y op alle vragen antwoorden.

Voor mailtrain zijn twee databasegebruikers nodig: een voor het beheer van de Mailtrain-database en een andere voor het genereren van de werknemersrapporten.

Om een ​​database aan te maken, moeten we eerst inloggen op de MySQL-opdrachtregel. Voer het volgende commando uit voor hetzelfde.

mysql -u root -p

Dit zal u om het wachtwoord vragen, het root-wachtwoord van MySQL geven dat u eerder hebt ingesteld. Voer nu de volgende query uit om een ​​nieuwe database voor uw Mailtrain-installatie te maken.

CREATE DATABASE mailtrain KARAKTER SET utf8 COLLATE utf8_general_ci;

De bovenstaande query maakt een database met de naam mailtrain. Zorg ervoor dat u puntkomma aan het einde van elke query gebruikt, omdat de query altijd eindigt met een puntkomma. Nadat de database is gemaakt, kunt u een nieuwe gebruiker maken en alle machtigingen aan de gebruiker verlenen voor de database. Het gebruik van root-gebruikers wordt niet aanbevolen voor de databases. Voer de volgende query uit om een ​​nieuwe databasegebruiker te maken.

CREER GEBRUIKER 'mailtrain' @ 'localhost' GEÏDENTIFICEERD DOOR 'StrongPassword';

De bovenstaande query zal een gebruiker aanmaken met gebruikersnaam mailtrain. U kunt elke gewenste gebruikersnaam gebruiken in plaats van mailtrain. Vervang StrongPassword door een sterk wachtwoord. Geef nu de juiste rechten aan uw databasegebruiker over de database die u hebt gemaakt. Voer de volgende opdracht uit.

VERLENEN ALLE PRIVILEGES OP mailtrain. * AAN 'mailtrain' @ 'localhost';

Maak nu een nieuwe gebruiker voor Mailtrain RO.

GEBRUIKER MAKEN 'mailtrain_ro' @ 'localhost' GEÏDENTIFICEERD DOOR 'StrongROPassword';

Bied leestoegang tot de RO-gebruiker via de Mailtrain-database.

SUBSIDIESELECTIE OP mailtrain. * NAAR 'mailtrain_ro' @ 'localhost';

Voer nu de volgende opdracht uit om de wijzigingen onmiddellijk toe te passen op de databasemachtigingen.

VOORRECHTEN VOOR FLU'S;

Sluit de MySQL-prompt af met de opdracht exit.

UITGANG;

Afhankelijkheden installeren

Mailtrain heeft maar weinig afhankelijkheden nodig om te werken. Installeer de afhankelijkheden door te draaien:

yum -y installeer ImageMagick git python redis bind-utils gcc-c ++ make

ImageMagick is een hulpmiddel om bitmapafbeeldingen te verwerken en Git zal worden gebruikt om de opslag van het toepassingsproject te klonen. Redis is een erg populaire sessie-cacheapplicatie en Python, bind-utils, gcc-c ++ en make zullen worden gebruikt om de applicatiebestanden te compileren.

Start Redis en schakel het in om automatisch te starten:

systemctl start opnieuw
systemctl enable redis

Download en installeer Mailtrain

Kloon de installatiebestanden van Mailtrain met Git.

git clone git: //github.com/Mailtrain-org/mailtrain.git / opt / mailtrain

Maak een nieuwe Mailtrain-gebruiker om Mailtrain-daemon uit te voeren. Dit zorgt ervoor dat de Mailtrain actief is in een geïsoleerde omgeving.

adduser mailtrain -d / opt / mailtrain

Met de opdracht hierboven wordt een nieuwe e-mailtrainer voor gebruikers gemaakt en / opt / mailtrain wordt gebruikt als de hoofddirectory.

Schakel over naar de Mailtrain-directory door het volgende uit te voeren:

cd / opt / mailtrain

Voordat u verdergaat, moet u een willekeurige tekenreeks genereren die wordt gebruikt om de sessiegegevens te coderen. Om de willekeurige reeks te genereren, kunt u het hulpprogramma pwgen gebruiken.

Voer yum uit - installeer pwgen om het hulpprogramma pwgen te installeren. Voer pwgen -1 64 uit om een ​​tekenreeks met lengte 64-tekens te genereren. Je zult zien:

[[Email protected] mailtrain]# pwgen -1 64
Poy0aeLalie5uew7eenanootehohLudiuleac5aigaekah1amokumeeg5aiG2ied

Maak een nieuw configuratiebestand production.toml. De configuratie in dit bestand overschrijft het standaardconfiguratiebestand default.toml. We zouden het standaard configuratiebestand niet moeten wijzigen. Maak een nieuw bestand production.toml om de overheersende configuratie op te slaan.

nano config / production.toml

Vul het bestand met de volgende configuratie.

language="en"

user="mailtrain"
group="mailtrain"
rouser="nobody"
rogroup="nobody"

[log]
level="error"

[www]
host="localhost"
port="3000"
secret="RandomString"
remember=604800
proxy=true
tmpdir="/tmp"

[mysql]
user="mailtrain"
password="StrongPassword"
database="mailtrain"
port=3306
charset="utf8"


[redis]
enabled=true

[queue]
processes=5

[reports]
enabled=true

Met de bovenstaande configuratie kan Mailtrain worden uitgevoerd als de e-mailtrainer voor gebruikers en de gebruiker Mailtrain Reports Worker om als gebruiker niemand uit te voeren. Verder configureert het de ingebouwde server om te luisteren naar localhost op poort 3000. We zullen Nginx instellen als reverse proxy, zodat de webinterface van Mailtrain toegankelijk is via de standaard HTTP-poort.

Vervang RandomString in het geheim = met de hierboven gegenereerde willekeurige reeks. Stel proxy in op true omdat we de ingebouwde server van Mailtrain achter de Nginx-proxy zullen gebruiken.

Stel de gebruikersnaam, het wachtwoord en de databasenaam in van de database die u hebt gemaakt om Mailtrain-gegevens op te slaan.

Maak ook een nieuw bestand om de productieconfiguratie voor de bedrijfsrapporten op te slaan.

nano workers / reports / config / production.toml

Vul het bestand met de volgende configuratie.

[log] level = "error" [mysql] host = "localhost" user = "mailtrain_ro" password = "StrongROPassword" database = "mailtrain" port = 3306 charset = "utf8" timezone = "local"

Verlaag nu de vereiste Node.js-afhankelijkheden en installeer de software:

npm install –productie

Nadat de toepassing is geïnstalleerd, kunt u deze onmiddellijk starten met behulp van:

NODE_ENV = productie npm start

Als de server actief is, zou u de volgende uitvoer moeten zien.

[[email protected] mailtrain] # NODE_ENV = productie npm start> [email protected] start / opt / mailtrain> node index.js info Lokale auth gebruiken

Maar in plaats van de applicatie rechtstreeks te starten, zullen we een systemd-service gebruiken. Stop de uitvoering door op ctrl + C te drukken.

Geef het eigendom van de bestanden aan de Mailtrain-gebruiker en verwijder alle machtigingen ten opzichte van de configuratie van andere niet-rootgebruikers van het systeem:

chown -R mailtrain: mailtrain / opt / mailtrain
chmod o-rwx / opt / mailtrain / config

Systemd-service instellen

Maak een nieuw Systemd-servicebestand. Als u Systemd gebruikt in plaats van een directe opdracht om de server uit te voeren, zorgt u ervoor dat de server automatisch wordt gestart bij een storing en opnieuw wordt opgestart. Het maakt het beheer van de service heel eenvoudig.

nano /etc/systemd/system/mailtrain.service

Vul het bestand met de volgende configuratie.

[Eenheid] Beschrijving = Mailtrain Server vereist = mariadb.service After = syslog.target network.target [Service] gebruiker = mailtrain groep = mailtrain Omgeving = "NODE_ENV = productie" WorkingDirectory = / opt / mailtrain ExecStart = / usr / bin / node index.js Type = eenvoudig Restart = altijd RestartSec = 10 StandardOutput = syslog StandardError = syslog SyslogIdentifier = mailtrain [Installeren] WantedBy = multi-user.target

Start Mailtrain en schakel het automatisch in bij het opstarten:

systemctl enable mailtrain
systemctl start mailtrain

Voer het volgende uit om de status van de service te controleren:

systemctl status mailtrain

Je zou moeten zien dat de service actief is.

[[email protected] ~] # systemctl status mailtrain? mailtrain.service - Mailtrain-server geladen: geladen (/etc/systemd/system/mailtrain.service; ingeschakeld; leveranciervoorinstelling: uitgeschakeld) Actief: actief (actief) sinds Mon 2017-10-09 11: 15: 40 UTC; 9s geleden Hoofd-PID: 18092 (mailtrain) CGroup: /system.slice/mailtrain.service ?? 18092 mailtrain ?? 18105 / usr / bin / node /opt/mailtrain/services/executor.js ?? 18112 / usr / bin / knooppunt /opt/mailtrain/services/sender.js ?? 18117 / usr / bin / node /opt/mailtrain/services/sender.js ?? 18125 / usr / bin / node /opt/mailtrain/services/sender.js? ? 18131 / usr / bin / node /opt/mailtrain/services/sender.js ?? 18136 / usr / bin / node /opt/mailtrain/services/sender.js Okt 09 11: 15: 40 liptan-pc systemd [1 ]: Gestart Mailtrain-server. Okt 09 11: 15: 40 liptan-pc-systeem [1]: Mailtrain-server starten ... Okt 09 11: 15: 44 liptan-pc-mailtrain [18092]: info Lokale verificatie gebruiken

Logrotate instellen

Logrotate is een zeer nuttig hulpprogramma om verouderde logboeken te vernieuwen. Wanneer een service continu wordt uitgevoerd, genereert deze een enorme hoeveelheid logboeken. De bestanden met de logboeken verbruiken veel schijfruimte. Logrotate verwijdert periodiek de oude logboeken zodat de logboekvermeldingen kunnen worden vervangen door nieuwe logboeken.

Maak een nieuw logrotate-configuratiebestand aan:

nano /etc/logrotate.d/mailtrain

Vul het bestand met de volgende configuratie:

/var/log/mailtrain.log {dagelijkse rotatie 12 comprimeer vertragingcompress ontbrekendok notifempty copytruncate nomail}

Stel Nginx in als Reverse Proxy

We hebben de ingebouwde webinterface van Mailtrain geconfigureerd om naar localhost op poort 3000 te luisteren, omdat het belangrijk is om een ​​productiewebserver te hebben om de website aan gebruikers te leveren. In deze zelfstudie gebruiken we Nginx als de reverse proxy, zodat de applicatie toegang kan krijgen via de standaard HTTP-poort. Installeer Nginx webserver:

yum -y installeer nginx

Maak een nieuwe virtuele host voor serverblokbestand voor Nginx:

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

Vul het bestand met:

server {luister 80; luister [::]: 80; servernaam news.example.com www.news.example.com; access_log /var/log/nginx/mailtrain.log; location / {proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; proxy_set_header HOST $ http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http: // 127.0.0.1: 3000; proxy_redirect uitgeschakeld; }}

Start de Nginx-webserver opnieuw en schakel deze automatisch in tijdens het opstarten:

systemctl herstart nginx
systemctl enable nginx

Configureer Firewall en SELinux

Als u een firewall op uw server uitvoert, moet u de firewall configureren om een ​​uitzondering voor de HTTP-service in te stellen. Sta Nginx reverse proxy toe om verbinding te maken van buiten het netwerk.

firewall-cmd -zone = public -permanent -add-service = http
firewall-cmd -rlaad

Als SELinux op uw systeem is ingeschakeld, moet u enkele uitzonderingen toevoegen in het SELinux-beleid.

Om te controleren of SELinux is ingeschakeld, voert u het volgende uit:

getenforce

Als SELinux is ingeschakeld, voer dan:

setsebool -P httpd_can_network_connect 1

Toegang tot de webinterface

Installatie Mailtrain is nu klaar. U hebt nu toegang tot de Mailtrain-server op http://news.example.com. Je ziet de volgende interface.

Mailtrain

Klik op de login-knop en log in met de gebruikersnaam admin en de wachtwoordtest.

Mailtrain Inloggen

Blader Account deel van het dashboard en update e-mailadres en wachtwoord. Het is erg belangrijk om het wachtwoord zo snel mogelijk bij te werken.

Maak een account aan in Mailtrain

Het is ook belangrijk om de instellingen bij te werken voordat u Mailtrain kunt gebruiken.

Mailtrain-instellingen

Update de site-URL en het beheerders-e-mailadres. U kunt ook de tracking-ID van Google Analytics opgeven om de inzichten bij te houden via Google Analytics. U kunt een HTML-code plaatsen die op de startpagina van uw server wordt weergegeven.

Mailtrain campaign default

Stel de standaardwaarden van de campagne in, zoals uw Sander-naam, standaardadres, standaard van naam, e-mailadres en URL, enz. Tijdens het verzenden van de e-mails, als deze opties niet zijn geconfigureerd, worden de standaardinstellingen gebruikt.

Mailer-instellingen

Ten slotte is de belangrijkste configuratie het verstrekken van e-mailserverreferenties. U kunt elke SMTP-server of Amazon SES (Simple Email Service) gebruiken. Als u SMTP gebruikt, geeft u de hostnaam, poort, gebruikersnaam en wachtwoord van de mailserver van uw SMTP-server op. Als u Amazon SES gebruikt, moet u de API-sleutel en andere inloggegevens verstrekken.

U kunt ook uw eigen SMTP-server instellen. volg gewoon een van deze handleidingen:

U hebt nu een volledig werkende Mailtrain-server op uw CentOS 7-server geïnstalleerd. Maak je eerste lijst en begin nieuwsbrieven te sturen naar de abonnees. U kunt een interactieve sjabloon maken met de WYSIWYG-editor en de e-mails verzenden met behulp van de campagnes. Mailtrain biedt ook rapporten van de e-mails die zijn verzonden en geopend. U kunt het tabblad Automatisering gebruiken om triggers te maken die e-mail verzenden wanneer een specifieke actie is voltooid. U kunt ook GPG-codering instellen. Als een lijst een aangepast veld voor een GPG-openbare-sleutelset heeft, kunnen abonnees hun openbare GPG-sleutel uploaden om gecodeerde berichten uit de lijst te ontvangen.

bron