Site icon Mailtrap

Configurare il server SMTP – Una guida step-by-step

Set up smtp server

Nel nostro articolo sui migliori server SMTP gratuiti, abbiamo discusso delle soluzioni basate su cloud per l’invio di email. Queste sono abbastanza comuni per progetti di tutte le dimensioni.

Ma cosa succede se non vuoi utilizzare i servizi di relay SMTP forniti da Gmail o dalle sue alternative? In questo articolo ti insegneremo come configurare un server SMTP locale e non dipendere da nessun altro per l’invio di email.

Hai davvero bisogno di un server SMTP?

Utilizzare un server SMTP in uscita è il metodo tradizionale per inviare email. Un server SMTP è un computer o un’app che invia email utilizzando il Simple Mail Transfer Protocol (SMTP).

Una soluzione alternativa è bypassare il server SMTP e inviare email direttamente al destinatario. Questo processo è noto come Direct Send e puoi utilizzarlo attraverso specifici programmi software per email.

Tuttavia, il Direct Send non è molto affidabile, ecco perché:

Quindi, mettiamo da parte il Direct Send e scopriamo perché qualcuno vorrebbe eseguire il proprio server SMTP.

Pro e contro di un server SMTP locale

ProsContro
Nessun limite giornaliero o orario sul numero di email in uscita.
Reportistica istantanea.
Privacy e controllo di tutte le tue email in uscita.
Nessun IP condiviso.
Gestire un server SMTP locale richiede tempo e impegno.
Il tasso di rimbalzo può aumentare del 20-30%.

Per riassumere il confronto, ecco il commento che abbiamo trovato su Reddit:

Fonte: Reddit

Le soluzioni di invio basate su cloud come Email API/SMTP di Mailtrap offrono tutti i vantaggi elencati sopra. Tali soluzioni di terze parti sono più sicure offrendo comunque il controllo completo sulla tua infrastruttura email.

Tuttavia, hanno ancora il fattore di dipendenza. Quindi, se vuoi eliminare la dipendenza, puoi ovviamente configurare un server SMTP utilizzando software specifici.

Requisiti per un server SMTP locale

Non ci sono requisiti specifici finora. Tuttavia, dovresti essere preparato per quanto segue:

Configurazione rapida del server SMTP

Ora, passiamo all’atto pratico. Poiché stai per configurare un server SMTP sul tuo computer, è fondamentale tenere presente il sistema operativo o OS. Quindi, spiegheremo come configurare un server SMTP locale su macOS, Windows e Linux.

Nota importante: se invii email di test all’indirizzo email reale, potresti non trovarle nella casella di posta in arrivo. Non dimenticare di controllare la tua cartella spam. I client di posta elettronica come Gmail, Yahoo, Outlook e altri sono sospettosi nei confronti dei nuovi mail transfer agent (MTA).

Assicurati di fare il backup del file di configurazione di Postfix prima di apportare qualsiasi modifica.

Come configurare un server SMTP locale su macOS

In passato, il server macOS era un’app potente che le persone usavano per gestire i servizi di rete e, come avrai indovinato, per configurare i server di posta. Utilizzava Postfix (un MTA) per impostazione predefinita.

Lentamente, Apple ha ridotto le funzionalità del server macOS e, nel 2022, lo ha interrotto completamente. L’app non sarà più aggiornata per adattarsi alle nuove versioni di macOS.

Le versioni esistenti del server macOS sono compatibili con Monterey e versioni precedenti di macOS. Ciò significa che puoi ancora usarlo per la configurazione del tuo server SMTP.

Nota: la configurazione può differire leggermente a seconda della versione del sistema operativo che stai utilizzando. Nel tutorial qui sotto, configureremo un server SMTP locale su macOS Big Sur. Per versioni precedenti o successive di macOS, fai riferimento al repository GitHub.

Postfix dovrebbe essere preinstallato sulla tua macchina. In caso contrario, puoi installarlo utilizzando un gestore di pacchetti di terze parti come Homebrew o MacPorts. Per Homebrew, esegui il seguente comando:

brew install postfix

Quindi crea un nuovo file di configurazione utilizzando il seguente codice:

sudo nano /etc/postfix/main.cf

Se Postfix è già installato, puoi accedervi eseguendo:

sudo vim /etc/postfix/main.cf

Indica a Postfix quale nome deve utilizzare per identificarsi agli altri server di posta. Aggiungi le seguenti righe:

myhostname = marco.esempio.com
myorigin = esempio.com

Se il tuo nome utente locale è Marco, la posta apparirà come proveniente da marco@esempio.com.

Ora è il momento di impostare il relay host. È la macchina che accetterà le email dopo l’autenticazione e le inoltrerà al server SMTP.

relayhost = mail.esempio.com:25

Il passaggio successivo è aggiungere l’IP della rete locale, definire i parametri TLS e abilitare SASL. Quest’ultimo richiede un file di configurazione aggiuntivo in cui viene memorizzata la password.

Crea il file sasl_passwd:

sudo vim /etc/postfix/sasl_passwd

Aggiungi la seguente riga:

mail.esempio.com:25 marco@esempio.com:<la tua password>

Salva il file con:

sudo postmap /etc/postfix/sasl_passwd

Ora torna al tuo file main.cf.

Il codice completo sarà simile a questo:

myhostname = mailserver.my.home
myorigin = $myhostname

mydestination = $myhostname, mailserver.my.home, localhost.localdomain, localhost
relayhost = mail.esempio.com:25
mynetworks = 127.0.0.0/8, [::1]/128

smtpd_client_restrictions = permit_mynetworks permit_sasl_authenticated permit
recipient_delimiter = +
tls_random_source = dev:/dev/urandom
smtpd_tls_ciphers = medium

inet_interfaces = all
smtpd_use_tls=yes
smtpd_tls_cert_file=/etc/certs/mailserver.my.home.crt
smtpd_tls_key_file=/etc/ssl/private/mailserver.my.home.key
smtpd_tls_security_level=may

smtp_tls_CApath=/opt/homebrew/etc/ssl/
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated permit_inet_interfaces defer_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

sender_canonical_maps = hash:/etc/postfix/sender_canonical

virtual_maps = hash:/etc/postfix/virtual

home_mailbox = Maildir/

sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map

Ora dobbiamo impostare Postfix per essere eseguito automaticamente all’avvio e riavviarlo. Per questo, dobbiamo copiare il plist master di Postfix fuori dalla cartella di sistema (cartella ‘System’).

sudo cp /System/Library/LaunchDaemons/com.apple.postfix.master.plist /Library/LaunchDaemons/org.postfix.custom.plist 

Quindi dobbiamo eseguire:

sudo vi /Library/LaunchDaemons/org.postfix.custom.plist

Il valore Com.apple.postfix.master dovrebbe essere sostituito con org.postfix.custom.

Ora dovremmo rimuovere queste righe per evitare di uscire dopo 60s:

<string>-e</string>
<string>60</string>

e aggiungere queste prima di </dict>

<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>

È ora di rilanciare il Daemon

sudo launchctl unload /Library/LaunchDaemons/org.postfix.custom.plist
sudo launchctl load /Library/LaunchDaemons/org.postfix.custom.plist

e verificare se è stato avviato.

sudo launchctl list | grep org.postfix

Quindi puoi controllare il port 25 di ascolto

sudo lsof -i -P | grep LISTEN 

e controllare il log.

log stream --predicate  '(process == "smtpd") || (process == "smtp")' --info

Come configurare un server SMTP su Linux

La maggior parte delle versioni di Linux viene fornita con le due implementazioni SMTP più comuni: Sendmail e Postfix. Sendmail ha un design piuttosto complesso e un’architettura meno sicura; ecco perché abbiamo scelto di nuovo Postfix.

Installazione

Se non hai Postfix sulla tua macchina, dovrai installarlo. Inoltre, avrai bisogno del pacchetto mailutils, che include i programmi necessari affinché Postfix funzioni:

sudo apt install mailutils postfix

Nella finestra di configurazione di Postfix, dovrai scegliere la configurazione di posta Internet Site. Infine, dovrai specificare il nome di sistema della posta. Dovrebbe essere lo stesso del nome che hai assegnato al nome di dominio che punta al tuo server. Usiamo esempio.com.

Configurazione

Ora, configuriamo Postfix per elaborare le richieste di invio di email da localhost. Per questo, devi modificare il file di configurazione principale main.cf:

sudo nano /etc/postfix/main.cf

Scorri verso il basso fino alla riga inet_interfaces = all e sostituiscila con inet_interfaces = loopback-only. Questo dirà a Postfix di accettare le email in arrivo solo su localhost.

Inoltre, devi modificare mydestination, che specifica l’elenco dei domini. Dovrebbe apparire così:

mydestination = $myhostname, localhost.$esempio.com, $esempio.com

Salva il file e riavvia Postfix.

sudo systemctl restart postfix

Infine, prova a inviare una email di test.

echo "Corpo dell'email di prova" | mail -s "Oggetto dell'email di prova" indirizzo_email_del_destinatario

Come configurare un server di relay SMTP locale su Windows

Per configurare il server SMTP su Windows, hai due opzioni principali:

Installazione utilizzando hMailServer

Scarica l’ultima versione di hMailServer e installala. All’inizio dell’installazione, devi prestare attenzione ai seguenti punti:

Una volta installato, è ora di eseguire e configurare hMailServer.

Ecco fatto. Ora puoi inviare la tua email di test. Questo può essere fatto con PowerShell – ed è veloce e facile. Per ulteriori informazioni, leggi il nostro articolo su invio di email da PowerShell. Esegui la seguente riga (non dimenticare di inserire i tuoi dati):

Send-MailMessage -To "<indirizzo email del destinatario>" -From "<tuo indirizzo email>"  -Subject "Oggetto della tua email" -Body "Testo del corpo della tua email" -Credential "<tuo nome utente>" -SmtpServer "127.0.0.1" -Port 25

Nella finestra pop-up, dovrai inserire la tua password e poi avrai finito.

Installazione utilizzando IIS

La configurazione del relay SMTP con IIS richiede qualsiasi versione di Windows Server. Suddivideremo il processo di installazione generale. Per i dettagli sulla tua versione specifica, fai riferimento alla documentazione Microsoft.

Per installare il server SMTP, dovrai completare i seguenti passaggi:

Dopo l’installazione, è necessario configurare il server virtuale SMTP. Per questo, abbiamo bisogno di IIS 6.0 Manager.

Una volta completati questi passaggi, dovresti testare le impostazioni con Telnet. Se riesci a inviare email con successo, significa che hai un server email SMTP funzionante.

È un server SMTP buono per i test?

Nella maggior parte dei casi, le persone configurano server SMTP locali per scopi di test. Se stai sviluppando un’app che invierà email, dovrai testare questa funzione, e un vero server SMTP in esecuzione sulla tua macchina locale potrebbe sembrare una buona opzione. Ma, lo è davvero?

Da una parte, installare e configurare un server SMTP locale non è problematico. Tuttavia, c’è una soluzione molto migliore.

Mailtrap è una piattaforma di Email Delivery che soddisfa tutte le tue esigenze legate alle email. Ti permette di testare, inviare e controllare la tua infrastruttura email attraverso una singola piattaforma.

Invece di configurazioni lunghe del server SMTP locale, puoi utilizzare Email Testing di Mailtrap – una sandbox per email con un ambiente sicuro per testare, ispezionare e debuggare le email. Tutto questo può essere fatto in staging, il che significa che la tua app può inviare un’email, ma non sarà consegnata al destinatario effettivo.

Invece, l’email di test andrà alla casella di posta della Sandbox. Pertanto, non ci sono rischi di spamming agli utenti.

Dalla casella di posta, è possibile convalidare l’HTML/CSS della tua email e vedere rapidamente i risultati dell’analisi spam verificati dal filtro Apache SpamAssassin.

Il processo di installazione è semplice. Tutto quello che devi fare è aggiornare le impostazioni SMTP con le credenziali pertinenti:

In alternativa, puoi copiare e incollare un frammento di codice pronto per l’uso che appare una volta selezionata la lingua pertinente dal menu a discesa.

Quando la tua app entra in produzione, puoi utilizzare Email API/SMTP di Mailtrap per raggiungere le caselle di posta dei destinatari. È un’infrastruttura email che offre alti tassi di deliverability grazie al suo design.

A differenza del server SMTP locale, forniamo record DNS per i protocolli di autenticazione SPF, DKIM e DMARC. Eseguiamo anche controlli di sicurezza per la massima protezione e supportiamo connessioni crittografate.

Una volta inviate le email, Email API/SMTP ti consentirà di accedere a statistiche molto dettagliate e utili.

Concludendo

Gestire un server di posta locale può a volte essere una seccatura. È richiesta una grande quantità di conoscenze e impegno per ottenere una buona deliverability delle email utilizzando il proprio server SMTP. Ecco perché ti consigliamo di scegliere un’API e un servizio SMTP come Email API/SMTP di Mailtrap.

Un server SMTP locale è forse buono per scopi di test, ma Email Testing di Mailtrap, o altri strumenti di test delle email, faranno un lavoro migliore.

Quindi, hai davvero bisogno di un server SMTP locale? Solo tu puoi rispondere a questa domanda. Buona fortuna!

Exit mobile version