Nel post del blog Migliori server SMTP gratuiti, abbiamo toccato le soluzioni basate su cloud per l’invio di e-mail. Questi sono abbastanza comuni per tutte le dimensioni dei progetti. Ma cosa succede se non si desidera utilizzare i servizi di inoltro e-mail di Gmail SMTP o le sue alternative? In questo articolo, ti insegneremo come impostare un server SMTP locale e sbarazzarsi di eventuali dipendenze di invio di e-mail.
Hai davvero bisogno di un server SMTP?
L’utilizzo di un server SMTP in uscita è il metodo tradizionale di invio di e-mail. Una soluzione alternativa è quella di bypassare il server SMTP e inviare direttamente alla destinazione. E ‘ noto come Direct Send, ed è possibile utilizzarlo attraverso specifici programmi software di posta elettronica. L’invio diretto non è molto affidabile, ed ecco perché:
- Non può essere utilizzato se la porta 25 è bloccata dall’ISP.
- Non è adatto per la posta elettronica di massa a causa di più connessioni a molti server diversi.
- Non può inviare e-mail non personalizzate.
- Può essere bloccato dai filtri e-mail perché le e-mail non vengono inviate da un normale server SMTP.
Mettiamo Invio diretto via. Quello che potrebbe interessarti è il motivo per cui dovresti eseguire il tuo server SMTP.
Pro e i contro di un server SMTP locale
Pro | Contro |
---|---|
|
|
Alcune soluzioni cloud-based come Mailgun e SendPulse fornire tutti i vantaggi di cui sopra. Tuttavia, tutte queste funzionalità sono pagate e devi comunque fare affidamento su un servizio di terze parti. Invece, è possibile impostare un server SMTP sul computer utilizzando un software specifico.
Requisiti per un server SMTP locale
Non ci sono requisiti specifici finora. Tuttavia, dovresti essere preparato per quanto segue:
- Alcuni ISP potrebbero bloccare la porta 25. È possibile risolvere questo problema contattando il provider ISP e conoscere le limitazioni che possono imporre. Inoltre, è necessario richiedere un server DNS corretto e l’autorizzazione per la risoluzione dei record MX.
- Per le email di massa, probabilmente dovresti optare per un dominio e un indirizzo IP fisso ad esso associato – questo aumenterà la tua resistenza ai filtri antispam.
Configurazione rapida del server SMTP
Ora, facciamo il lavoro. Dal momento che hai intenzione di impostare un server SMTP sul tuo computer, è fondamentale sapere quale sistema operativo viene utilizzato. Ecco perché esamineremo tre modi per farlo per macOS, Windows e Linux.
Nota importante: se invii email di prova all’indirizzo email reale, potresti non trovarle nella posta in arrivo. Non dimenticare di controllare la cartella spam. ESP come Gmail, Yahoo, e altri sono sospetti di nuovi agenti di trasferimento di posta.
Per macOS
Le ultime versioni di macOS X sono preinstallate con Postfix, un server di posta elettronica predefinito. Quindi, tutto ciò che devi fare è modificare la configurazione del server SMTP come segue:
File di configurazione Postfix
- Il file di configurazione principale Postfix è il primo con cui lavorare. Corri:
sudo vim /etc/postfix/main.cf
- Dì a Postfix quale nome dovrebbe usare per identificarsi con altri server di posta. Aggiungere le seguenti righe:
myhostname = john.example.commyorigin = example.com
Se il tuo nome utente locale è John, la posta apparirà da [email protected].
- L’host di inoltro è la macchina che accetterà le mail dopo l’autenticazione e le trasmetterà al server SMTP.
relayhost=mail.example.com:25
- È necessario abilitare SASL con un file di configurazione aggiuntivo, in cui è memorizzata la password.
smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
- Questa riga significa che Postfix utilizzerà solo connessioni crittografate TLS.
smtp_tls_security_level = encrypt
- Ecco come
main.cf
appare per intero:
myhostname = john.example.commyorigin = example.comrelayhost=mail.example.com:25smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswdsmtp_tls_security_level = encrypt
- Salva il file con:
sudo postmap /etc/postfix/main.cf
File con SASL password
- Creare
sasl_passwd
file:
sudo vim /etc/postfix/sasl_passwd
- Aggiungere la seguente riga:
mail.example.com:25 [email protected]:
- Salvare il file con:
sudo postmap /etc/postfix/sasl_passwd
- E riavviare Postfix:
sudo postfix reload
Il server SMTP locale è pronto. Provalo inviando un’email di prova:
date | mail -s "Test email" [email protected]
Nota: questo flusso di configurazione è adatto per macchine non macOS che dispongono di un normale demone Postfix.
Per Linux
La maggior parte delle distribuzioni Linux sono fornite con le due implementazioni SMTP più comuni: Sendmail e Postfix. Sendmail ha un design piuttosto complesso ed è meno sicuro; ecco perché abbiamo scelto di nuovo Postfix.
Installazione
Se non si dispone di Postfix sulla macchina, installarlo prima. Inoltre, avrai bisogno del pacchetto di posta Mailutils, che include i programmi necessari per il funzionamento di Postfix:
sudo apt install mailutils postfix
Nella finestra di configurazione Postfix, è necessario scegliere la configurazione della posta del sito Internet. Infine, è necessario specificare il nome della posta di sistema. Dovrebbe essere lo stesso del nome assegnato al nome di dominio che punta al server. Usiamo example.com.
Configurazione
Ora, configuriamo Postfix per elaborare le richieste per inviare e-mail da localhost. Per questo, è necessario modificare il file di configurazione principalemain.cf
:
sudo nano /etc/postfix/main.cf
Scorri verso il basso fino alla riga inet_interfaces = all
e sostituiscila con inet_interfaces = loopback-only
Inoltre, devi modificare mydestination
, che specifica l’elenco dei domini. Dovrebbe assomigliare a questo:
mydestination = $myhostname, localhost.$example.com, $example.com
Salvare il file e riavviare Postfix con:
sudo systemctl restart postfix
Alla fine, prova a inviare un’e-mail di prova:
echo "Test email body" | mail -s "Test email subject line" receipient's_email_address
Per Windows
Esistono diverse opzioni software per configurare un server SMTP su Windows, tra cui MailEnable e Apache James. Ma abbiamo optato per quello più popolare, chiamato hMailServer.
Installazione
Scarica l’ultima versione qui e installala. All’inizio dell’installazione, è necessario prestare attenzione a quanto segue:
- Nella finestra Seleziona componenti, assicurarsi che sia stata scelta l’installazione completa. I componenti server e amministrativi devono essere controllati.
- Nella finestra Seleziona tipo server database, controllare il motore di database integrato.
- Nella finestra di sicurezza hMailServer, creare una password per l’utente predefinito.
Una volta installato, esegui hMailServer e ora configuriamolo.
Configurazione
- Fare clic su Connetti nella finestra di avvio e inserire la password impostata durante l’installazione.
- Fai clic su Aggiungi dominio e inserisci il tuo nome di dominio nel campo corrispondente. A proposito, è possibile utilizzare un nome di dominio falso poiché quello reale non è necessario per inviare e-mail. Ma, in questo caso, assicurarsi che il dominio falso in realtà non esiste. Fai clic su Salva e vedrai il tuo dominio creato nella scheda a sinistra.
- Selezionare la cartella Account nella scheda sinistra e fare clic su Aggiungi… per configurarne uno. Tutto quello che devi fare qui è inserire un nome nel campo Indirizzo. Questo imposterà il tuo indirizzo email. Facoltativamente, è possibile specificare una password. Fai clic su Salva e vai alle Impostazioni nella scheda a sinistra.
- Espandere il thread Impostazioni e selezionare Protocolli. Deseleziona POP3 e IMAP. Per ulteriori informazioni su questi protocolli, leggi il nostro post sul blog IMAP vs. POP3 vs. SMTP. Fare clic su Salva.
- Ora, seleziona Avanzate nel thread delle impostazioni e inserisci localhost nel campo Dominio predefinito nella scheda destra. Fare clic su Salva. Per finire con le impostazioni avanzate, selezionare Auto-ban e deselezionare la casella Abilitata. Fare clic su Salva.
- Alla fine, espandere il thread Utilità e selezionare Diagnostica. Seleziona il tuo dominio su cui eseguire i test e fai clic su Start. Non siamo interessati a tutti i test, basta raccogliere i dettagli del server e testare la porta in uscita. Questi dovrebbero essere contrassegnati in verde.
Questo è tutto. Ora puoi inviare la tua email di prova. Questo può essere fatto con PowerShell-è facile e veloce. Per ulteriori informazioni su questo, leggere il nostro post sul blog Inviare e-mail da PowerShell. Esegui la seguente riga (non dimenticare di inserire i tuoi dati):
Send-MailMessage -To "<recipient's email address>" -From "<your email address>" -Subject "Your email subject" -Body "Your email body text" -Credential "<your username>" -SmtpServer "127.0.0.1" -Port 25
Nella finestra pop-up, è necessario inserire la password.
Un server SMTP è adatto per i test?
Nella maggior parte dei casi, le persone impostano server SMTP locali a scopo di test. Se stai sviluppando un’app che invierà e-mail, dovrai testare questa funzione e un vero server SMTP in esecuzione sul tuo computer locale potrebbe sembrare una buona opzione. Ma, è così? Da un lato, non è fastidioso installare e configurare un server SMTP locale. Tuttavia, c’è una soluzione molto migliore.
Se si utilizza Mailtrap per il test, si otterrà uno strumento avanzato basato su un server SMTP falso. Significa che la tua app invierà e-mail ma non le consegnerà effettivamente. La posta in uscita finirà nella casella di posta demo Mailtrap. Quindi, non dovrai preoccuparti dei destinatari di posta elettronica reali e controllare la cartella spam ogni volta che esegui i test. Non è richiesta alcuna installazione. Tutto quello che dovete fare è aggiornare le impostazioni SMTP con le credenziali Mailtrap. In alternativa, è possibile copiare e incollare un frammento di codice pronto all’uso. Sono disponibili diverse integrazioni per i framework e i linguaggi di programmazione più comuni. Per ulteriori informazioni su altri vantaggi e funzionalità, leggere la Guida introduttiva di Mailtrap.
Per concludere
L’esecuzione di un server di posta locale a volte può essere un problema. Una grande quantità di conoscenze e sforzi sono necessari per ottenere una buona deliverability e-mail utilizzando il proprio server SMTP. Forse è una buona opzione per scopi di test, ma Mailtrap, o altri strumenti di test e-mail, lo farà meglio. Quindi, hai davvero bisogno di un server SMTP locale? Sei l’unico che puo ‘ rispondere. In bocca al lupo!