Installazione Mailtrain · 10 min read · Sep 29, 2025
Come installare l'applicazione Mailtrain Newsletter su CentOS 7
Mailtrain è un’applicazione newsletter open source auto-ospitata scritta in Node.js. Utilizza una libreria Node.js molto popolare, Nodemailer, per inviare le email. Offre automazione e analisi eccezionali senza alcun costo. Puoi facilmente creare o importare un elenco di email di un milione di indirizzi email utilizzando l’importazione di file CSV. Supporta anche campi e moduli personalizzati. Fornisce automazione tramite trigger, che possono inviare messaggi specifici a utenti specifici quando l’azione viene attivata. Puoi utilizzare qualsiasi fornitore di email per inviare la newsletter che supporta il protocollo SMTP insieme al supporto per Amazon SES, ZoneMTA, SendGrid e Mailgun, ecc. Fornisce più editor WYSIWYG per creare bellissimi modelli per le newsletter.
In questo tutorial, installeremo Mailtrain insieme a tutte le dipendenze necessarie su CentOS 7. Configureremo anche Nginx come proxy inverso per servire l’applicazione sulla porta HTTP standard.
Requisiti
Mailtrain richiede almeno 1 GB di RAM. Tutte le dipendenze necessarie saranno installate durante il tutorial. Avrai bisogno di un’installazione minima di CentOS 7 con accesso root. Se sei connesso come utente non root, puoi eseguire sudo -i per passare all’utente root.
Aggiorna il sistema di base
Prima di installare qualsiasi pacchetto, è consigliabile aggiornare i pacchetti e il repository utilizzando il seguente comando.
yum -y updateInstalla Node.js
Node.js è richiesto da Mailtrain poiché è costruito utilizzando Nodemailer. Node.js è un runtime JavaScript molto popolare e Nodemailer è un modulo per le applicazioni Node.js per inviare email.
Aggiungi il repository Node.js 8.x:
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -Installa Node.js.
yum -y install nodejsInstalla MariaDB
Per memorizzare il database di Mailtrain, dovremo installare MariaDB. MariaDB è un fork di MySQL. Installa il repository di MariaDB nel tuo sistema.
nano /etc/yum.repos.d/mariadb.repoAggiungi le seguenti righe al file.
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Ora installa MariaDB eseguendo.
yum -y install mariadb-server mariadbPer avviare MariaDB e abilitarlo per l’avvio all’accensione, utilizza i seguenti comandi.
systemctl start mariadb
systemctl enable mariadbOra esegui i seguenti comandi per mettere in sicurezza la tua installazione di MySQL o MariaDB.
mysql_secure_installationEseguirà un piccolo script che ti chiederà di fornire la password root per MariaDB. Poiché abbiamo appena installato MariaDB, la password root non è impostata, premi semplicemente invio per procedere. Ti chiederà se desideri impostare una password root per la tua installazione di MariaDB, scegli y e imposta una password forte per l’installazione. Ti chiederà anche di rimuovere i database di test e gli utenti anonimi. La maggior parte delle domande sono autoesplicative e dovresti rispondere sì o y a tutte le domande.
Mailtrain richiede due utenti di database per funzionare, uno per amministrare il database di Mailtrain e un altro per generare i report dei lavoratori.
Per creare un database, dovremo prima accedere alla riga di comando di MySQL. Esegui il seguente comando per farlo.
mysql -u root -pQuesto ti chiederà la password, fornisci la password root di MySQL che hai impostato in precedenza. Ora esegui la seguente query per creare un nuovo database per la tua installazione di Mailtrain.
CREATE DATABASE mailtrain CHARACTER SET utf8 COLLATE utf8_general_ci;La query sopra creerà un database chiamato mailtrain. Assicurati di utilizzare il punto e virgola alla fine di ogni query poiché la query termina sempre con un punto e virgola. Una volta creato il database, puoi creare un nuovo utente e concedere tutti i permessi all’utente per il database. Non è consigliato utilizzare l’utente root per i database. Per creare un nuovo utente di database, esegui la seguente query.
CREATE USER 'mailtrain'@'localhost' IDENTIFIED BY 'StrongPassword';La query sopra creerà un utente con il nome utente mailtrain. Puoi utilizzare qualsiasi nome utente preferito invece di mailtrain. Sostituisci StrongPassword con una password forte. Ora fornisci i privilegi appropriati al tuo utente di database sul database che hai creato. Esegui il seguente comando.
GRANT ALL PRIVILEGES ON mailtrain.* TO 'mailtrain'@'localhost';Ora crea un nuovo utente per Mailtrain RO.
CREATE USER 'mailtrain_ro'@'localhost' IDENTIFIED BY 'StrongROPassword';Fornisci accesso in lettura all’utente RO sul database di Mailtrain.
GRANT SELECT ON mailtrain.* TO 'mailtrain_ro'@'localhost';Ora esegui il seguente comando per applicare immediatamente le modifiche sui privilegi del database.
FLUSH PRIVILEGES;Esci dal prompt di MySQL utilizzando il comando exit.
EXIT;Installa le dipendenze
Mailtrain richiede alcune altre dipendenze per funzionare. Installa le dipendenze eseguendo:
yum -y install ImageMagick git python redis bind-utils gcc-c++ makeImageMagick è uno strumento per elaborare immagini Bitmap e Git sarà utilizzato per clonare il repository del progetto dell’applicazione. Redis è un’applicazione di cache di sessione molto popolare e Python, bind-utils, gcc-c++ e make saranno utilizzati per compilare i file delle applicazioni.
Avvia Redis e abilitalo per avviarsi automaticamente:
systemctl start redis
systemctl enable redisScarica e installa Mailtrain
Clona i file di installazione di Mailtrain utilizzando Git.
git clone git://github.com/Mailtrain-org/mailtrain.git /opt/mailtrainCrea un nuovo utente Mailtrain per eseguire il demone Mailtrain. Questo garantirà che Mailtrain venga eseguito in un ambiente isolato.
adduser mailtrain -d /opt/mailtrainIl comando sopra creerà un nuovo utente mailtrain e /opt/mailtrain sarà utilizzato come directory home.
Passa alla directory di Mailtrain eseguendo:
cd /opt/mailtrainPrima di procedere, dovresti generare una stringa casuale che sarà utilizzata per crittografare i dati di sessione. Per generare la stringa casuale, puoi utilizzare l’utilità pwgen.
Esegui yum -y install pwgen per installare l’utilità pwgen. Esegui pwgen -1 64 per generare una stringa di lunghezza 64 caratteri. Vedrai:
[root@liptan-pc mailtrain]# pwgen -1 64
Poy0aeLalie5uew7eenanootehohLudiuleac5aigaekah1amokumeeg5aiG2ied
Crea un nuovo file di configurazione production.toml. La configurazione fornita in questo file sovrascrive il file di configurazione predefinito default.toml. Non dovremmo modificare il file di configurazione predefinito. Crea un nuovo file production.toml per memorizzare la configurazione di sovrascrittura.
nano config/production.tomlPopola il file con la seguente configurazione.
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
La configurazione sopra consente a Mailtrain di funzionare come utente mailtrain e all’utente Mailtrain Reports Worker di funzionare come utente nobody. Inoltre, configura il server integrato per ascoltare localhost sulla porta 3000. Configureremo Nginx come proxy inverso in modo che l’interfaccia web di Mailtrain possa essere accessibile tramite la porta HTTP standard.
Sostituisci RandomString in secret= con la stringa casuale generata sopra. Imposta proxy su true poiché eseguiremo il server integrato di Mailtrain dietro il proxy Nginx.
Imposta il nome utente, la password e il nome del database del database che hai creato per memorizzare i dati di Mailtrain.
Crea anche un nuovo file per memorizzare la configurazione di produzione per i report dei lavoratori.
nano workers/reports/config/production.tomlPopola il file con la seguente configurazione.
[log]
level="error"
[mysql]
host="localhost"
user="mailtrain_ro"
password="StrongROPassword"
database="mailtrain"
port=3306
charset="utf8"
timezone="local"
Ora scarica le dipendenze necessarie di Node.js e installa il software:
npm install --productionUna volta installata l’applicazione, puoi avviarla immediatamente utilizzando:
NODE_ENV=production npm startSe il server è in esecuzione, dovresti vedere il seguente output.
[root@liptan-pc mailtrain]# NODE_ENV=production npm start
> [email protected] start /opt/mailtrain
> node index.js
info Using local auth
Ma invece di avviare direttamente l’applicazione, utilizzeremo un servizio systemd. Ferma l’esecuzione premendo ctrl + C.
Fornisci la proprietà dei file all’utente Mailtrain e rimuovi tutti i permessi sulla configurazione da altri utenti non root del sistema:
chown -R mailtrain:mailtrain /opt/mailtrain
chmod o-rwx /opt/mailtrain/configConfigurazione del servizio Systemd
Crea un nuovo file di servizio Systemd. Utilizzare Systemd invece di un comando diretto per eseguire il server garantirà che il server venga avviato automaticamente in caso di errore e riavvio. Rende molto facile gestire il servizio.
nano /etc/systemd/system/mailtrain.servicePopola il file con la seguente configurazione.
[Unit]
Description=Mailtrain Server
Requires=mariadb.service
After=syslog.target network.target
[Service]
user=mailtrain
group=mailtrain
Environment="NODE_ENV=production"
WorkingDirectory=/opt/mailtrain
ExecStart=/usr/bin/node index.js
Type=simple
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=mailtrain
[Install]
WantedBy=multi-user.target
Avvia Mailtrain e abilitalo per avviarsi automaticamente all’accensione:
systemctl enable mailtrain
systemctl start mailtrainPer controllare lo stato del servizio, esegui:
systemctl status mailtrainDovresti vedere che il servizio è in esecuzione attivamente.
[root@liptan-pc ~]# systemctl status mailtrain
? mailtrain.service - Mailtrain Server
Loaded: loaded (/etc/systemd/system/mailtrain.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2017-10-09 11:15:40 UTC; 9s ago
Main PID: 18092 (mailtrain)
CGroup: /system.slice/mailtrain.service
??18092 mailtrain
??18105 /usr/bin/node /opt/mailtrain/services/executor.js
??18112 /usr/bin/node /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
Oct 09 11:15:40 liptan-pc systemd[1]: Started Mailtrain Server.
Oct 09 11:15:40 liptan-pc systemd[1]: Starting Mailtrain Server...
Oct 09 11:15:44 liptan-pc mailtrain[18092]: info Using local auth
Configura Logrotate
Logrotate è un’utilità molto utile per aggiornare i log obsoleti. Quando un servizio è in esecuzione continuamente, genera una grande quantità di log. I file contenenti i log consumano molto spazio su disco. Logrotate elimina periodicamente i vecchi log in modo che le voci di log possano essere sostituite da nuovi log.
Crea un nuovo file di configurazione logrotate:
nano /etc/logrotate.d/mailtrainPopola il file con la seguente configurazione:
/var/log/mailtrain.log {
daily
rotate 12
compress
delaycompress
missingok
notifempty
copytruncate
nomail
}
Configura Nginx come proxy inverso
Abbiamo configurato l’interfaccia web integrata di Mailtrain per ascoltare localhost sulla porta 3000, poiché è importante eseguire un server web di produzione per servire il sito web agli utenti. In questo tutorial, utilizzeremo Nginx come proxy inverso in modo che l’applicazione possa essere accessibile tramite la porta HTTP standard. Installa il server web Nginx:
yum -y install nginxCrea un nuovo file di blocco del server per il virtual host di Nginx:
nano /etc/nginx/conf.d/mailtrain.confPopola il file con:
server {
listen 80;
listen [::]:80;
server_name 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 off;
}
}
Riavvia il server web Nginx e abilitalo per avviarsi automaticamente all’accensione:
systemctl restart nginx
systemctl enable nginxConfigura Firewall e SELinux
Se stai eseguendo un firewall sul tuo server, dovrai configurare il firewall per impostare un’eccezione per il servizio HTTP. Consenti al proxy inverso Nginx di connettersi dall’esterno della rete.
firebase-cmd --zone=public --permanent --add-service=http
firebase-cmd --reloadSe hai SELinux abilitato sul tuo sistema, dovrai aggiungere alcune eccezioni nelle politiche di SELinux.
Per controllare se SELinux è abilitato, esegui:
getenforceSe hai SELinux abilitato, esegui:
setsebool -P httpd_can_network_connect 1Accesso all’interfaccia web
L’installazione di Mailtrain è ora completata. Puoi ora accedere al server Mailtrain su http://news.example.com. Vedrai la seguente interfaccia.

Clicca sul pulsante di accesso e accedi utilizzando il nome utente admin e la password test.

Naviga nella sezione Account della dashboard e aggiorna l’indirizzo email e la password. È molto importante aggiornare la password il prima possibile.

Inoltre, è importante aggiornare le impostazioni prima di poter utilizzare Mailtrain.

Aggiorna l’URL del sito e l’email dell’amministratore. Puoi anche fornire l’ID di tracciamento di Google Analytics per monitorare le informazioni tramite Google Analytics. Puoi inserire del codice HTML che verrà visualizzato sulla homepage del tuo server.

Imposta le impostazioni predefinite della campagna, come il nome del mittente, l’indirizzo predefinito, il nome del mittente predefinito, l’email e l’URL, ecc. Durante l’invio delle email, se queste opzioni non sono configurate, verranno utilizzati i valori predefiniti.

Infine, la configurazione più importante è fornire le credenziali del server email. Puoi utilizzare qualsiasi server SMTP o Amazon SES (Simple Email Service). Se stai utilizzando SMTP, fornisci il nome host del server di posta, la porta, il nome utente e la password del tuo server SMTP. Se stai utilizzando Amazon SES, fornisci la chiave API e altre credenziali.
Puoi anche configurare il tuo server SMTP. Segui semplicemente una di queste guide:
- Come creare un server di posta completamente funzionale utilizzando Postal
- Costruire un server di posta completo su CentOS 6 con Postfix, Dovecot, PostgreSQL
- Configurazione di un server di posta utilizzando Exim4, Clamav, Dovecot, SpamAssassin e molto altro su Debian
Hai ora un server Mailtrain completamente funzionante installato sul tuo server CentOS 7. Crea il tuo primo elenco e inizia a inviare newsletter agli abbonati. Puoi creare un modello interattivo utilizzando l’editor WYSIWYG e inviare le email utilizzando le campagne. Mailtrain fornisce anche report delle email inviate e aperte. Puoi utilizzare la scheda Automazione per creare trigger che inviano email quando viene eseguita un’azione specifica. Puoi anche configurare la crittografia GPG. Se un elenco ha un campo personalizzato per una chiave pubblica GPG impostata, gli abbonati possono caricare la propria chiave pubblica GPG per ricevere messaggi crittografati dall’elenco.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.