GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Installa Mailtrain v1.24 su Ubuntu 20.04 Server senza Docker

Questo tutorial ti mostrerà come installare Mailtrain su Ubuntu 20.04 senza Docker. Mailtrain è un'applicazione di newsletter self-hosted open source, un'alternativa ai fornitori di servizi di posta elettronica commerciali come Mailchimp. Puoi utilizzare Mailtrain per inviare newsletter ai tuoi abbonati e-mail tramite il tuo server di posta elettronica o utilizzando qualsiasi servizio di inoltro SMTP (Mailjet, SendGrid, AmazonSES, Mailgun, ecc.).

Aggiorna :Mailtrain V2 è stato rilasciato. I nuovi utenti dovrebbero utilizzare V2 invece di V1.24 :Come installare Mailtrain v2 su Ubuntu 20.04 Server

Mailtrain è rilasciato secondo i termini della licenza GPL v3.0, basata su Node.js e MySQL/MariaDB. L'ultima versione è la v1.24.1, rilasciata il 28 settembre 2018. Le caratteristiche di Mailtrain sono le seguenti:

  • Ti permette di gestire facilmente mailing list di grandi dimensioni (come 1 milione di iscritti).
  • Puoi aggiungere abbonati manualmente, tramite l'API, o importarli da un file CSV.
  • Supporta campi personalizzati (campi di testo, numeri, menu a discesa o caselle di controllo), unisci tag e moduli personalizzati.
  • Segmentazione dell'elenco.
  • Campagna RSS:genera automaticamente la newsletter dal feed RSS e inviala agli iscritti.
  • Gli abbonati possono caricare le loro chiavi pubbliche GPG e Mailtrain crittograferà la newsletter per loro.
  • Ti permette di controllare le statistiche sui clic individuali per ogni link.
  • Editor avanzati di modelli di email e editor di codice HTML.
  • Automazione:invia email specifiche quando l'utente attiva il tuo trigger predefinito.
  • Puoi creare un elenco di e-mail aperto (consenti l'iscrizione pubblica) e un elenco di e-mail chiuso (gli iscritti vengono aggiunti all'elenco dall'amministratore).
  • Ti permette di riprendere le vecchie campagne email (invia le vecchie campagne ai nuovi iscritti).

Fase 1:scegli il provider di hosting giusto

Il self-hosting può farti risparmiare un sacco di soldi. Mailtrain è un software gratuito e open source. Devi solo pagare $ 26 al mese per il VPS (server privato virtuale), che può eseguire un server di posta completo e la piattaforma di email marketing di Mailtrain. Può gestire facilmente milioni di abbonati. Quindi il tuo costo totale è sempre di $ 26 al mese, indipendentemente dal numero di abbonati che hai . Se possiedi milioni di abbonati su MailChimp, il costo sarebbe di migliaia di dollari al mese.

Non è un compito facile trovare un provider VPS (Virtual Private Server) adatto per l'hosting di posta elettronica e l'email marketing. Molte società di hosting come DigitalOcean bloccano la porta 25. DigitalOcean non sbloccherà la porta 25, quindi dovrai configurare l'inoltro SMTP per bypassare il blocco, il che può costarti denaro aggiuntivo. Se utilizzi Vultr VPS, la porta 25 è bloccata per impostazione predefinita. Possono sbloccarlo se apri un ticket di supporto, ma possono bloccarlo di nuovo in qualsiasi momento se decidono che la tua attività di invio e-mail non è consentita. Vultr potrebbe effettivamente bloccarlo nuovamente se utilizzi i loro server per inviare newsletter.

Un altro problema è che i grandi provider di hosting ben noti come DigitalOcean o Vultr subiscono abusi da parte degli spammer. Spesso l'indirizzo IP del server si trova in diverse blacklist. Vultr ha alcuni interi intervalli IP nella lista nera.

ScalaHosting è un'ottima opzione per eseguire un server di posta perché

  • Non bloccano la porta 25.
  • L'indirizzo IP non è in nessuna lista nera di email. (Almeno questo è vero nel mio caso. Ho scelto il data center di Dallas.) Sicuramente non vuoi essere elencato nella temuta lista nera IP di Microsoft Outlook o nella lista nera di SpamRats. Alcune blacklist bloccano un intero intervallo IP e non hai modo di rimuovere il tuo indirizzo IP da questo tipo di blacklist.
  • Puoi modificare il record PTR per migliorare la consegna delle email.
  • Ti consentono di inviare newsletter ai tuoi abbonati e-mail con no limiti orari o limite giornaliero, qualunque. Tieni presente che non sei autorizzato a inviare spam, noto anche come non richiesto e-mail di massa. Se il destinatario non ti dà esplicitamente il permesso di inviare e-mail e tu invii e-mail a lui, si tratta di un'e-mail non richiesta.

Consiglio di seguire il tutorial collegato di seguito per configurare correttamente un server VPS Linux su ScalaHosting. Usa il codice coupon linuxbabe2021 su ScalaHostingpagina di pagamento per risparmiare $ 100 se scegli di pagare 12 mesi in anticipo.

  • Come creare un server VPS Linux su ScalaHosting

Hai anche bisogno di un nome di dominio. Ho registrato il mio nome di dominio da NameCheap perché il prezzo è basso e ti danno protezione della privacy whois gratis per tutta la vita.

Se non hai ancora il tuo server di posta, ti consiglio di utilizzare il programma gratuito iRedMail per configurare rapidamente il tuo server di posta prima di installare Mailtrain, in modo da non dover spendere soldi per il servizio di inoltro SMTP commerciale.

Fase 2:installa il server di database MariaDB

I dati dei tuoi iscritti verranno archiviati in un database. Mailtrain supporta MySQL e MariaDB. MariaDB è un sostituto drop-in di MySQL. È stato sviluppato da ex membri del team MySQL preoccupati che Oracle possa trasformare MySQL in un prodotto closed-source. Quindi installiamo il server del database MariaDB.

Immettere il comando seguente per installarlo su Ubuntu 20.04.

sudo apt install mariadb-server mariadb-client

Dopo l'installazione, il server MariaDB dovrebbe essere avviato automaticamente. Usa systemctl per verificarne lo stato.

systemctl status mariadb

Esempio di output:

● 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

Se non è in esecuzione, avvialo con questo comando:

sudo systemctl start mariadb

Per consentire a MariaDB di avviarsi automaticamente all'avvio del sistema, esegui

sudo systemctl enable mariadb

Ora esegui lo script di sicurezza post installazione.

sudo mysql_secure_installation

Quando ti chiede di inserire la password di root di MariaDB, premi il tasto Invio poiché la password di root non è ancora impostata. Quindi inserisci y per impostare la password di root per il server MariaDB.

Successivamente, puoi premere Invio per rispondere a tutte le domande rimanenti, che rimuoveranno l'utente anonimo, disabiliteranno l'accesso root remoto e rimuoveranno il database di test. Questo passaggio è un requisito di base per la sicurezza del database MariaDB. (Nota che la lettera Y è in maiuscolo, il che significa che è la risposta predefinita.)

Controlla le informazioni sulla versione del server MariaDB.

mariadb --version

Uscita:

mariadb  Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Fase 3:crea un database e un utente per Mailtrain

Ora dobbiamo accedere alla console MariaDB e creare un database e un utente per Mailtrain. Per impostazione predefinita, il pacchetto MaraiDB su Ubuntu utilizza unix_socket per autenticare l'accesso dell'utente, il che significa sostanzialmente che puoi utilizzare il nome utente e la password del sistema operativo per accedere alla console MariaDB. Quindi puoi eseguire il seguente comando per accedere senza fornire la password di root di MariaDB.

sudo mariadb -u root

Crea un database per Mailtrain usando il comando seguente. L'ho chiamato mailtrain , ma puoi usare il nome che preferisci. (Non tralasciare il punto e virgola.)

create database mailtrain;

Quindi immettere il comando seguente per creare un utente del database per Mailtrain e concedere all'utente tutti i privilegi del database del mailtrain. Sostituisci mtuser e your-password con il nome utente e la password preferiti.

grant all privileges on mailtrain.* to mtuser@localhost identified by 'mtuser_password';

Quindi, crea un utente con accesso in sola lettura al database del treno di posta. Ho chiamato questo utente mt_readonly .

grant select on mailtrain.* TO mt_readonly@localhost identified by 'mt_readonly_password';

Svuota la tabella dei privilegi per rendere effettive le modifiche, quindi esci dalla console di MariaDB.

flush privileges;

exit;

Fase 4:installa Node.js

Mailtrain è basato su Node.js, che è un ambiente di runtime JavaScript che traduce il codice JavaScript leggibile dall'uomo in codice macchina. Quindi dobbiamo installare Node.js su Ubuntu 20.04 per eseguire Mailtrain. Mailtrain richiede Node.js 7+. L'ultima versione di Node.js è la v14. Tuttavia, non consiglio di utilizzare l'ultima versione, perché non è compatibile con Mailtrain v1.24. Per una migliore compatibilità, consiglio di installare Node.js 8 dallo Snap Store.

Se hai installato Node.js dal repository APT ufficiale, devi disinstallarlo, perché interferirebbe con la versione Snap di Node.js.

sudo apt remove nodejs

Quindi, installa il demone snap.

sudo apt install snapd

Esistono più versioni di Node.js nello Snap Store, che possono essere visualizzate con:

snap info node

Uscita:

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:           ↑                                                                    

Possiamo installare Node.js dal canale 8/stable.

sudo snap install node --classic --channel=8/stable

Per controllare la tua versione di Node.js e npm, esegui

node -v

npm -v

Uscita:

Nota :Se è la prima volta che installi un pacchetto Snap sul server, devi disconnetterti e riconnetterti per poter utilizzare la versione snap di Ruby.

Per compilare e installare componenti aggiuntivi nativi da npm devi anche installare gli strumenti di compilazione:

sudo apt install -y build-essential

Fase 5:esegui Mailtrain

Vai a /var/www/ e recupera i file Mailtrain da Github.

cd /var/www/

sudo git clone https://github.com/Mailtrain-org/mailtrain.git

Importare i dati SQL iniziali nel database mailtrain utilizzando il comando seguente. Devi inserire la password di mtuser .

mariadb -u mtuser -p mailtrain < /var/www/mailtrain/setup/sql/mailtrain.sql

Crea il file di configurazione production.toml.

sudo nano /var/www/mailtrain/config/production.toml

In questo file puoi aggiungere configurazioni che sovrascrivono le configurazioni predefinite in /var/www/mailtrain/config/default.toml file. Abbiamo solo bisogno di aggiungere le seguenti configurazioni.

user="mailtrain"
group="mailtrain"
[log]
level="error"
[www]
secret="Replace this with some random characters"
[mysql]
user="mtuser"
password="mtuser_password"
[queue]
processes=5

Salva e chiudi il file. Quindi crea il mailtrain utente e gruppo per l'esecuzione del demone mailtrain. Tieni presente che non è necessario creare una password per questo utente, quindi creiamo un utente di sistema anziché un utente normale.

sudo adduser --system --group mailtrain

Crea un file di configurazione per il report worker.

sudo nano /var/www/mailtrain/workers/reports/config/production.toml

Aggiungi le seguenti configurazioni. Questo lavoratore del rapporto avrà accesso in sola lettura al database del treno di posta.

[log]
level="error"
[mysql]
user="mt_readonly"
password="mt_readonly_password"

Salva e chiudi il file. Quindi cambia l'autorizzazione di /var/www/mailtrain/ .

sudo chown mailtrain:mailtrain /var/www/mailtrain/ -R

sudo chmod o-rwx /var/www/mailtrain/config/

Installa Python2.7 e crea un collegamento simbolico.

sudo apt install python2.7

sudo ln -s /usr/bin/python2.7 /usr/bin/python

E installa i pacchetti di nodi richiesti.

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

Copia il file dell'unità di servizio systemd di Mailtrain in /etc/systemd/system/ directory.

sudo cp /var/www/mailtrain/setup/mailtrain.service /etc/systemd/system/

Apri questo file.

sudo nano /etc/systemd/system/mailtrain.service

Modifica /opt/mailtrain a /var/www/mailtrain . E cambia /usr/bin/node a /snap/bin/node perché stiamo usando la versione Snap di Node.js.

Potresti anche voler commentare la riga seguente. Perché, con la seguente riga abilitata, se MySQL/MariaDB si riavvia, allora mailtrain.service si riavvierà anche e se il server MySQL/MariaDB è in fase di aggiornamento, allora mailtrain.service smetterò. Penso che non sia necessario richiedere il mysql.service .

Requires=mysql.service

Salva e chiudi questo file. Quindi avvia mailtrain.service .

sudo systemctl start mailtrain.service

Controlla il suo stato. Assicurati che sia in esecuzione.

systemctl status mailtrain.service

Uscita:

● 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

Abilita l'avvio automatico all'avvio del sistema.

sudo systemctl enable mailtrain.service

Ora che Mailtrain è in esecuzione, puoi accedere all'interfaccia web di Mailtrain tramite la porta 3000.

your-server-ip:3000

Passaggio 6:imposta il proxy inverso e abilita HTTPS

Prima di utilizzare l'interfaccia web di Mailtrain, mettiamola dietro Nginx e quindi abilitiamo HTTPS. Installa il server web Nginx su Ubuntu 20.04 con:

sudo apt install nginx

Ora puoi copiare l'esempio mailtrain-nginx.conf file in /etc/nginx/conf.d/ directory.

sudo cp /var/www/mailtrain/setup/mailtrain-nginx.conf /etc/nginx/conf.d/

Apri questo file.

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

Trova la riga seguente.

server_name mailtrain.org www.mailtrain.org;

Modifica il valore di server_name parametro al tuo nome di dominio come newsletter.your-domain.com . Non dimenticare di creare un record DNS A per questo sottodominio.

server_name newsletter.linuxbabe.com;

Salva e chiudi il file. Quindi testa le configurazioni di Nginx.

sudo nginx -t

Se il test ha esito positivo, ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

Ora dovresti essere in grado di accedere all'interfaccia web di Mailtrain tramite il tuo sottodominio:newsletter.your-domain.com .

Ora modifica /var/www/mailtrain/config/production.toml file.

sudo nano /var/www/mailtrain/config/production.toml

Nel [www] sezione, aggiungi le due righe seguenti per indicare che mailtrain è dietro il proxy Nginx e fallo ascoltare solo sull'indirizzo host locale.

host="127.0.0.1"
proxy=true

Salva e chiudi il file. Quindi riavvia Mailtrain per rendere effettive le modifiche.

sudo systemctl restart mailtrain

Passaggio 7:abilita HTTPS con Let's Encrypt

Installa il client Let's Encrypt (certbot) sul tuo server Ubuntu 20.04.

sudo apt install certbot python3-certbot-nginx

Quindi puoi utilizzare il plug-in Nginx per ottenere e installare automaticamente un certificato TLS eseguendo il comando seguente.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d newsletter.your-domain.com

Ora puoi accedere all'interfaccia web di Mailtrain tramite il tuo nome di dominio e una connessione HTTPS sicura.

htop il comando mi dice che il mio server utilizza circa 500 MB di RAM. Se eseguo Mailtrain con Docker, sono circa 900 MB.

Accedi con nome utente admin e password test . Quindi cambia l'indirizzo email e la password del tuo account. Vai a settings pagina per modificare le configurazioni predefinite. Dovresti cambiare l'indirizzo del servizio da http://localhost:3000/ al tuo sottodominio (https://newsletter.your-domain.com ).

Nota:l'account amministratore è un facile bersaglio per gli hacker. Per la massima sicurezza, ti consigliamo di cambiare il nome utente da admin a qualcos'altro. L'interfaccia web di Mailtrain non fornisce tale opzione, ma puoi cambiare il nome utente nel database MariaDB usando il comando SQL.

In Mailer Settings , puoi utilizzare SMTP se hai il tuo server di posta elettronica o utilizzi Amazon SES. In realtà, puoi anche utilizzare altri servizi di inoltro SMTP in SMTP scheda. Nello screenshot qui sotto, utilizzo il mio server di posta elettronica. Le email verranno inviate sulla porta 587 con crittografia STARTTLS.

Se Mailtrain è installato sul tuo server di posta elettronica, dovresti utilizzare le seguenti impostazioni SMTP. Il nome host dovrebbe essere 127.0.0.1 e la porta 25. Non è necessario abilitare la crittografia o l'autenticazione quando si parla con localhost.

Salva le tue impostazioni. Quindi puoi creare un elenco per testare le funzionalità di Mailtrain.

Come abilitare la cache Redis

È possibile installare il server Redis per la cache di sessione. Ciò consentirà a Mailtrain di eseguire 5 processi invece del singolo processo predefinito, il che accelererà la consegna delle e-mail se hai molti abbonati e-mail (tieni presente che ciò aumenterà l'utilizzo della memoria di circa 250 MB).

sudo apt install redis

Dopo l'installazione, Redis dovrebbe essere avviato automaticamente. Puoi verificarne lo stato con:

systemctl status redis

Esempio di output:

● 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

Se non è in esecuzione, puoi avviarlo con:

sudo systemctl start redis

Abilita l'avvio automatico all'avvio:

sudo systemctl enable redis

Quindi, modifica il file di configurazione di Mailtrain.

sudo nano /var/www/mailtrain/config/production.toml

Aggiungi le due righe seguenti alla fine del file per abilitare Redis.

[redis]
enabled=true

Salva e chiudi il file. Quindi riavvia Mailtrain.

sudo systemctl restart mailtrain

Come gestire i messaggi di rimbalzo in Mailtrain

Prima o poi, la tua mailing list conterrà indirizzi a cui non puoi inviare email. Ad esempio, quando un abbonato che utilizza un indirizzo e-mail aziendale lascia l'azienda, tale indirizzo e-mail verrà eliminato. Quindi il tuo server di posta elettronica riceverà un messaggio di rimbalzo che ti dice che l'email non può essere consegnata.

Se utilizzi un servizio di inoltro SMTP per inviare e-mail, gestirà i messaggi di rimbalzo per te. Se utilizzi il tuo server di posta elettronica per inviare e-mail, devi gestire i messaggi di rimbalzo in Mailtrain. Mailtrain offre due modi per gestire i messaggi rimbalzati.

  • tramite VERP
  • tramite il registro di Postfix

Personalmente utilizzo il metodo VERP, perché è ampiamente utilizzato nella comunità di posta elettronica e anche perché il secondo metodo causa un elevato utilizzo della CPU sul mio server.

Gestione del rimbalzo VERP

Con VERP (percorso di ritorno busta variabile), il gestore dell'elenco di posta elettronica utilizza indirizzi busta univoci per ciascun abbonato. Per abilitare VERP, modifica il production.toml file.

sudo nano /var/www/mailtrain/config/production.toml

Se il tuo host Mailtrain non ha un server SMTP in esecuzione, aggiungi il seguente testo.

[verp]
enabled=true
port=25
disablesenderheader=true

Se il tuo server Mailtrain ha un server SMTP come Postfix in esecuzione, aggiungi il testo seguente. Il server di gestione del rimbalzo sarà in ascolto su 127.0.0.1:2525 .

[verp] 
enabled=true 
port=2525 
host="127.0.0.1"
disablesenderheader=true

Salva e chiudi il file. Quindi riavvia Mailtrain per rendere effettive le modifiche.

sudo systemctl restart mailtrain

Nell'interfaccia web di Mailtrain, vai su Settings -> VERP Bounce Handlding . Controlla Use VERP to catch bounces . Salva le tue impostazioni.

Successivamente, devi creare un record MX per il nome host del server (bounces.your-domain.com ), quindi aggiungi un record per questo nome host, che punta al tuo host Mailtrain, in modo che i messaggi di rimbalzo possano essere inviati al tuo host Mailtrain. Ogni iscritto nel tuo elenco avrà un indirizzo busta univoco come [email protected] .

Tieni presente che se hai distribuito il record DMARC per il tuo nome di dominio, l'allineamento SPF deve essere impostato sulla modalità rilassata. Se è impostato in modalità rigorosa, la tua newsletter potrebbe non superare il controllo DMARC.

Se il server di gestione del rimbalzo di Mailtrain è in ascolto sulla porta 2525 di 127.0.0.1 e il server SMTP Postfix è in ascolto sulla porta 25 dell'indirizzo IP pubblico, è necessario configurare la mappa di trasporto in modo che Postfix possa inoltrare il messaggio di rimbalzo a Mailtrain. Crea il file della mappa di trasporto.

sudo nano /etc/postfix/transport

Aggiungi la seguente riga a questo file. Questo dice a Postfix di inoltrare le email con un indirizzo come [email protected] al server di gestione dei rimbalzi di Mailtrain.

bounces.your-domain.com  smtp:[127.0.0.1]:2525

Salva e chiudi il file. Quindi genera il file di indice.

sudo postmap /etc/postfix/transport

Modifica il file di configurazione principale di Postfix.

sudo nano /etc/postfix/main.cf

Aggiungi la seguente riga al file.

transport_maps = hash:/etc/postfix/transport

Nota:se hai utilizzato iRedMail per configurare il tuo server di posta, allora transport_maps parametro ha altri valori. Dovresti aggiungere il valore alla fine come di seguito.

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

Salva e chiudi il file. Quindi riavvia Postfix per rendere effettive le modifiche.

sudo systemctl restart postfix

Gestione dei messaggi rimbalzati tramite il registro Postfix

Ciò presuppone che Mailtrain sia installato sul tuo server di posta elettronica.

Mailtrain è in grado di rilevare i messaggi rimbalzati dal registro di posta di Postfix trovando le righe che contengono status=bounced . Innanzitutto, è necessario abilitare il server di lettura dei registri di Postfix. Modifica il production.toml file.

sudo nano /var/www/mailtrain/config/production.toml

Aggiungi il seguente testo.

[postfixbounce]
enabled=true

Salva e chiudi il file. Quindi riavvia Mailtrain per rendere effettive le modifiche.

sudo systemctl restart mailtrain

Ora il server di lettura del registro di Postfix è in ascolto su 127.0.0.1:5699. Per consentirgli di leggere il log di Postfix, esegui il comando seguente.

tail -F /var/log/mail.log | nc localhost 5699 -

Per farlo funzionare in background, puoi creare un'unità di servizio systemd.

sudo nano /etc/systemd/system/bouncetail.service

Aggiungi il seguente testo.

[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

Salva e chiudi il file. Quindi avvia questo servizio e abilita l'avvio automatico all'avvio.

sudo systemctl start bouncetail

sudo systemctl enable bouncetail

Assicurati di riavviare il servizio bouncetail dopo aver riavviato il servizio mailtrain. Ho scoperto che il servizio bouncetail causa un elevato utilizzo della CPU sul mio server, quindi non utilizzo questo metodo.

Aggiorna

Dopo aver utilizzato Mailtrain sul mio server per un po' di tempo, ho scoperto che ci sono altri motivi che causano il rimbalzo delle e-mail. I seguenti sono rimbalzi morbidi.

  • La casella di posta del destinatario è piena.
  • Il tuo indirizzo IP è in una lista nera.
  • Il server di posta elettronica del destinatario è inattivo o offline.

C'è anche un hard bounce, ovvero l'indirizzo email del destinatario non esiste. Per impostazione predefinita, Mailtrain annulla l'iscrizione a un indirizzo e-mail se viene rilevato un rimbalzo, il che va bene per l'hard bounce, ma è una buona idea consentire diversi soft bounce prima di annullare l'iscrizione all'indirizzo e-mail errato. Puoi chiedere al server di posta elettronica di ricezione di rimuovere il tuo indirizzo IP dalla lista nera e quindi iscrivere nuovamente il relativo indirizzo di posta elettronica.

Caricare immagini in Mailtrain

Per caricare immagini in Mailtrain, devi installare imagemagick pacchetto. Senza di essa, Mailtrain potrebbe generare errori durante il caricamento delle immagini.

sudo apt install imagemagick

Come inserire un modulo di iscrizione sul tuo sito web

Innanzitutto, è necessario abilitare la condivisione delle risorse tra le origini. Modifica il production.toml file.

sudo nano /var/www/mailtrain/config/production.toml

Aggiungi la seguente riga nel file per autorizzare il tuo sito web.

[cors]
# Allow subscription widgets to be embedded
origins=['https://www.example.com']

Salva e chiudi il file. Quindi riavvia Mailtrain per rendere effettive le modifiche.

sudo systemctl restart mailtrain

Successivamente, aggiungi il seguente codice sul tuo sito Web per visualizzare il modulo di registrazione. Sostituisci il testo di colore rosso con il nome di dominio Mailtrain e il tuo ID elenco.

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

Quindi aggiungi regole CSS personalizzate per renderlo visivamente più accattivante.

Come creare utenti aggiuntivi in ​​Mailtrain

Mailtrain v2 consentirà all'amministratore di creare più utenti con autorizzazioni utente granulari e condivisione flessibile. Ma con l'attuale versione v.1.24.1, puoi creare utenti solo attraverso il database. Accedi alla console MySQL/MariaDB.

sudo mysql -u root

Usa il mailtrain banca dati.

USE mailtrain;

Quindi crea una voce utente con il seguente comando 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());

Esci dal server del database.

EXIT;

Ho scoperto che gli utenti creati in questo modo non possono accedere all'interfaccia web di Mailtrain la prima volta. Gli utenti devono utilizzare il collegamento "password dimenticata" nella pagina di accesso per reimpostare la propria password, quindi l'accesso dovrebbe funzionare. Tieni inoltre presente che tutti gli utenti dispongono dell'autorizzazione amministrativa nell'interfaccia web di Mailtrain.

Come importare l'elenco e-mail da MailChimp

Per prima cosa, devi andare su Audience scheda nella dashboard di MailChimp. Fai clic su View Contacts pulsante per mostrare tutti gli iscritti. Quindi fai clic su Export Audience per esportare l'elenco come file CSV.

Quindi vai alla dashboard di Mailtrain e seleziona la tua mailing list. Seleziona List Actions pulsante a discesa e fai clic su Import Subscribers .

Nella pagina successiva, dovrai caricare il file CSV scaricato da MailChimp.

Quindi devi abbinare i campi in MailChimp ai campi nella tua lista e-mail Mailtrain. Se alcuni dei campi in MailChimp non esistono nell'elenco e-mail di Mailtrain, puoi crearli nella dashboard di Mailtrain.

Tieni presente che se i tuoi campi MailChimp contengono pulsanti di opzione, dovresti creare pulsanti di opzione anche nei campi Mailtrain. Tuttavia, devi segmentare il tuo elenco MailChimp in base al valore del pulsante di opzione, quindi esportare questi segmenti in diversi file CSV e importarli in Mailtrain un segmento alla volta. Questo perché Mailtrain non fornisce un modo per abbinare i valori di ciascun pulsante di opzione da MailChimp.

Cron Job per pulire automaticamente gli indirizzi email non iscritti

Puoi eliminare manualmente gli indirizzi e-mail non iscritti nel pannello di amministrazione basato sul Web di Mailtrain, ma è molto più efficiente eliminarli utilizzando i comandi MySQL/MariaDB, quindi devi semplicemente creare un processo Cron per automatizzare questa attività.

Innanzitutto, accedi al server del database MySQL/MariaDB.

sudo mysql -u root

Quindi connettiti al database del treno di posta.

use mailtrain;

Le informazioni sugli abbonati sono memorizzate nel subscription tavoli. Se hai più mailing list, avrai più subscription tavoli. Puoi elencare tutte queste tabelle usando il seguente comando SQL.

show tables like 'subscription%';

Output sul mio server.

+-------------------------------------+
| Tables_in_mailtrain (subscription%) |
+-------------------------------------+
| subscription                        |
| subscription__1                     |
| subscription__2                     |
+-------------------------------------+

La prima tabella è una tabella vuota. Ho due liste in Mailtrain. Sono memorizzati in subscription__1 e subscription__2 tavolo. Gli indirizzi email sottoscritti hanno il codice di stato impostato su 1 . Gli indirizzi email non iscritti hanno il codice di stato impostato su 2 . Quindi, per eliminare gli indirizzi email non iscritti, puoi eseguire i seguenti comandi SQL.

DELETE FROM subscription__1 where status = '2';
DELETE FROM subscription__2 where status = '2';

Per uscire dal server di database MySQL/MariaDB, esegui

exit;

Ora apri il file crontab dell'utente root.

sudo crontab -e

Aggiungi le due righe seguenti.

# 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';"

Salva e chiudi il file. 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;
}

Salva e chiudi il file. 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 banca dati.

USE mailtrain;

All custom fields are stored in the custom_fields tavolo. 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.


Ubuntu
  1. Come installare Docker su Ubuntu 18.04

  2. Installa il server SSH Ubuntu 22.04

  3. Come installare Docker su Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  4. Installare il server 18.04 senza connessione di rete?

  5. Come installare il server Ubuntu senza connessione di rete?

Come installare Plex Media Server su Ubuntu 16.04 Server/Desktop

Installa l'app per newsletter self-hosted Mailtrain sul server Ubuntu 16.04

Come installare Mailtrain su Ubuntu 18.04 con Docker

Installa il software Discourse Forum su Ubuntu 18.04 senza Docker

Come installare il server Bitwarden su Ubuntu 20.04 | 22.04 LTS tramite Docker

Come installare Docker su Ubuntu 14.04