Testare le notifiche email dalla tua applicazione presenta un problema ricorrente: se l'applicazione invia email tramite un vero SMTP, prima o poi un errore di battitura nei dati di test o una dimenticanza nel cambio di ambiente farà sì che un reset di password di prova o una fattura finisca nella casella di posta di un cliente reale. Mailtrap risolve questo problema nel cloud, ma con un abbonamento che aumenta con il numero di email inviate. Mailpit è un "SMTP catcher" open source che installi sul tuo Box, intercetta ogni messaggio inviato tramite SMTP dalla tua applicazione e lo mostra in un pannello web, senza limiti sul numero di email e senza costi mensili. Di seguito, passo dopo passo, come installare Mailpit su Saplo.
Perché Mailpit invece di inviare a una casella di posta reale o a Mailtrap
Testare le email senza un catcher dedicato di solito porta a due strade, ed entrambe hanno degli svantaggi:
- invio a una vera casella di posta di prova - funziona finché qualcuno non confonde una variabile d'ambiente o l'indirizzo del destinatario nei dati di prova, e a quel punto l'email di prova finisce dove non dovrebbe,
- Mailtrap e servizi cloud simili - risolvono questo problema, ma costano, e il limite del numero di email catturate nel piano gratuito finisce più velocemente di quanto il team finisca i test.
Mailpit funziona come un singolo container Docker sul tuo Box, quindi ogni email inviata via SMTP dall'applicazione viene catturata localmente, senza limiti di numero di messaggi e senza il rischio che qualcosa finisca a un destinatario reale.
Mailpit vs Mailtrap vs MailHog
Mailpit è il diretto successore di MailHog, un progetto che non viene più sviluppato da tempo, quindi la domanda naturale è: in cosa si differenzia da entrambi?
- Mailtrap è un servizio cloud con un limite gratuito di e-mail intercettate al mese - comodo perché non devi installare nulla, ma a pagamento per un traffico di test più elevato e con i dati presso un fornitore esterno.
- MailHog è un progetto più vecchio con un ruolo molto simile, ma senza sviluppo attivo da anni, il che significa che non riceve più correzioni o nuove funzionalità.
- Mailpit unisce i vantaggi di entrambi - è attivamente sviluppato come MailHog una volta, e lo installi sul tuo Box come Mailtrap, senza limiti al numero di e-mail e senza costi per il traffico di test.
Se il tuo team testa molte notifiche e-mail e vuole avere il pieno controllo, senza limiti nel piano gratuito e senza aspettare un progetto ormai morto, Mailpit è la soluzione migliore.
Requisiti
Per configurare Mailpit su Saplo, hai bisogno di:
- Un Box con Docker avviato (il motore lo abilita automaticamente durante l'installazione dal catalogo, è richiesto il nesting nel container, che Saplo ha per impostazione predefinita),
- Minimo 256 MB di RAM libera sul Box e 2 GB di spazio su disco, quindi il piano Box S (a 27 € all'anno) sarà sufficiente,
- Un dominio o sottodominio
*.saploapp.plincluso in ogni piano, dove sarà ospitato il pannello di anteprima delle email, - NON devi creare un database separato - Mailpit memorizza le email intercettate nel proprio file SQLite all'interno del volume di dati.
Installazione passo dopo passo
- Nel pannello Saplo, vai su Catalogo applicazioni e seleziona Mailpit (categoria "Strumenti").
- Indica un Box con un minimo di 256 MB di RAM libera, dove verrà installato il catcher, e il dominio o sottodominio sotto il quale funzionerà il pannello.
- Conferma l'installazione. Il motore installa un container dall'immagine ufficiale
axllent/mailpit, genera una porta SMTP casuale ed espone il pannello web solo sul loopback del Box, collegato a nginx, che lo serve sotto il dominio indicato con SSL gratuito. All'esterno è esposto solo il pannello, la porta SMTP rimane disponibile esclusivamente in locale sul Box. - Dopo
docker compose upil motore verifica se il pannello risponde effettivamente via HTTP, prima di considerare l'installazione completata. - I dati di connessione SMTP per altre applicazioni sullo stesso Box (host, porta) vengono salvati nel file
MAILPIT-SETUP.txtnella directory dell'applicazione.
Prima configurazione
Mailpit, a differenza di Chatwoot o Directus, non ha un account o un login al pannello - è una sandbox per i test, non una vera email, quindi il pannello è aperto subito dopo l'installazione.
- Vai all'indirizzo del dominio, ad esempio
poczta-test.saploapp.pl, e vedrai una lista vuota di email intercettate, pronta per il primo messaggio. - Nella configurazione SMTP della tua applicazione (WordPress, Django, Node) sullo stesso Box, inserisci l'host
127.0.0.1e la porta indicata nel fileMAILPIT-SETUP.txt- utente e password possono essere qualsiasi, Mailpit accetta qualsiasi credenziale di accesso. - Invia un'email di prova dall'applicazione, ad esempio un reset della password o una notifica d'ordine, e aggiorna il pannello Mailpit - il messaggio apparirà nella lista con un'anteprima del contenuto HTML e testuale e degli allegati.
- Ogni email intercettata può essere aperta, puoi controllare le intestazioni SMTP e vedere come appare nel client di posta, senza il rischio che qualcosa raggiunga un destinatario reale.
- Nessuna email intercettata da Mailpit viene inviata altrove - è esclusivamente un'anteprima locale per scopi di test.
Mailpit su Saplo vs. Mailtrap e MailHog
| Mailtrap in cloud | MailHog | Mailpit su Saplo | |
|---|---|---|---|
| Limite al numero di email | sì, nel piano gratuito | nessuno | nessuno |
| Sviluppo attivo | sì | no | sì |
| Dove si trova il contenuto delle email intercettate | sul server del provider | sul tuo server | sul tuo Box |
| Costo | abbonamento dopo aver superato il limite | costo del tuo server | costo del solo Box |
Domande frequenti
Mailpit invia le email ai destinatari reali? No, ogni email inviata tramite SMTP a Mailpit viene intercettata e mostrata nel pannello, senza mai raggiungere il destinatario reale.
Devo fornire credenziali SMTP reali nell'applicazione? No, Mailpit accetta qualsiasi nome utente e password, poiché si tratta solo di intercettare invii di prova, non di un vero server di posta.
Qual è la differenza tra Mailpit e MailHog, dato che fanno la stessa cosa? Mailpit è il successore di MailHog, attivamente sviluppato, un progetto che non riceve aggiornamenti da molto tempo.
Mailpit è adatto per l'invio in produzione? No, è esclusivamente una sandbox per i test: per l'invio reale è necessaria una casella di posta separata o un servizio transazionale.
Se il tuo team sta testando le notifiche email dalla propria applicazione e vuole assicurarsi che nessuna email di prova raggiunga un cliente reale, scrivici, ti aiuteremo a scegliere il Box più adatto al tuo team.
- #DevOps
- #Mailpit
- #Guida
- #SMTP
- #Test
