È probabile che tu stia leggendo questo post sul blog dopo aver cercato su Google “come testare il relay SMTP”. Ti ricordi i risultati della ricerca? Per lo più riguardano i server di posta elettronica, la connessione SMTP e l’uso di Telnet per testarli. Abbiamo sistematizzato tutti gli aspetti che potresti cercare e fornito una risposta dettagliata alla tua richiesta. Cominciamo con le basi.
Il relay SMTP è il processo di instradamento delle e-mail al server SMTP di destinazione appropriato. Non è un software né un’applicazione, a differenza dei mail transfer agent che partecipano al flusso di consegna delle e-mail. Il relay avviene tra l’MSA e l’MDA se il mittente e il destinatario provengono da domini diversi (gestiti da server SMTP diversi). Se l’email viene trasferita all’interno dello stesso dominio senza alcun server aggiuntivo coinvolto, non conta come un relay di email.
Alcuni di voi probabilmente conoscono il termine grazie al nostro post sul relay SMTP. Per quelli di voi che non hanno avuto la possibilità di controllarlo, forniremo una breve spiegazione utilizzando la seguente infografica:
NB: Se avete bisogno di strofinare la conoscenza della differenza tra IMAP vs. POP3 vs. POP3 vs. SMTP, date un’occhiata al nostro post sul blog dedicato.
In pratica, il termine relay SMTP si riferisce spesso al server relay SMTP, noto anche come mail transfer agent (MTA). Un MTA è un server SMTP che permette il relaying. Di solito, sono impostati da servizi di relay SMTP come Sendinblue o Mailgun per l’invio di email di massa e transazionali. Quindi, quando hai bisogno di testare il relay SMTP, devi testare l’effettivo server SMTP che relaziona le email. In questo caso, il relay SMTP e il server SMTP possono essere considerati come sinonimi, e quindi Google li tratta come termini correlati.
Che cos’è il test del relay aperto?
Oltre a controllare la connessione SMTP, devi anche verificare se il tuo server è un relay aperto. Che cosa comporta? Il server SMTP dovrebbe avere un meccanismo di autenticazione che permette di ritrasmettere le e-mail a un altro server. Di regola, se il server richiede credenziali (nome utente e password) per eseguire il relay, NON è un server open relay. Il relay aperto rende il vostro server accessibile a utenti non autorizzati. Gli spammer saranno in grado di inviare e-mail non richieste da esso. Tale attività malevola farà cadere la reputazione del tuo indirizzo IP, che è cruciale per una buona deliverability delle email. Il tuo server open relay potrebbe essere inserito nella lista nera, e molti server SMTP non accetteranno email da esso.
Come posso fare il test open relay? Puoi telnetare al server e inviare un’email a un altro dominio usando i comandi MAIL FROM e RCPT TO. Se il codice di risposta finale è 250 e non è stata richiesta l’autenticazione, il vostro server è un open relay.
Test alternativi e più semplici possono essere fatti con i seguenti strumenti online:
- CheckOR.com
- Anonymous Relay Test
- Spam Help Open Relay Test
- e molti altri
Posso testare il relay SMTP solo con telnet?
Telnet è il modo più comune per controllare se il server di posta permette il relay di un particolare dominio. Abbiamo parlato del suo utilizzo in How to Test SMTP Server. Nella maggior parte dei casi, telnet al vostro server SMTP sarà sufficiente per diagnosticare problemi di connessione di base. Tuttavia, Telnet ha i suoi svantaggi specifici:
- nessuna crittografia – devi costruire stringhe di autenticazione manualmente usando uno strumento MIME
- frequenti disconnessioni dal server
- nessuna macro con comandi SMTP integrati
- limitazioni relative alla connessione SSL e TLS
Con questo in mente, abbiamo deciso di mettere via Telnet e introdurre altri modi per risolvere i problemi del relay SMTP.
Testare la connessione al server relay SMTP con strumenti installabili
smtp-cli
Questo è un client SMTP a riga di comando. smtp-cli supporta STARTTLS, SMTP-AUTH, e molte altre caratteristiche avanzate. Inoltre, è possibile utilizzare questo potente strumento per testare e fare il debug dei server SMTP. È una buona alternativa a telnet perché smtp-cli permette di controllare le impostazioni di crittografia del server TLS-enabled con una successiva autenticazione dell’utente. Fare questo con telnet sarebbe poco pratico.
Installazione
Puoi scaricare l’ultima versione di smtp-cli dalla pagina dei rilasci di GitHub. In alternativa, puoi usare un’utilità di download come widget e installarlo con un comando appropriato:
$ wget -o smtp-cli https://github.com/mludvig/smtp-cli/releases/{LATEST_RELEASE}$ chmod +x smtp-cli
Siccome alcune caratteristiche di smtp-cli sono opzionali, controlla i moduli Perl richiesti e installali. Le dipendenze sono specificate nella pagina GitHub dello strumento. Per esempio, gli utenti di Ubuntu dovrebbero installare i seguenti pacchetti:
$ sudo apt install libio-socket-ssl-perl libdigest-hmac-perl libterm-readkey-perl libmime-lite-perl libfile-libmagic-perl libio-socket-inet6-perl
Test del relay SMTP
Vediamo come funziona smtp-cli. Per prima cosa, testiamo il localhost. Ci connetteremo al server e osserveremo l’SMTP di base avanti e indietro.
$ ./smtp-cli --verbose --server localhost 'localhost ESMTP Postfix'> EHLO localhost 'localhost' 'PIPELINING' 'SIZE 20480000' 'ETRN' '8BITMIME'> QUIT 'Bye'
Ora, testiamo il relay. Cercheremo di inviare un’email attraverso il server che richiede l’autenticazione. Ecco come apparirà la sessione SMTP:
$ ./smtp-cli --verbose --host smtp.example.com:587 --enable-auth --user test--from [email protected] --to [email protected] --data message.txt 'smtp.example.com ESMTP Postfix'> EHLO localhost 'smtp.example.com' 'PIPELINING' 'SIZE 10240000' 'VRFY' 'ETRN' 'AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5' 'AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5' 'XVERP' '8BITMIME'AUTH method (PLAIN LOGIN DIGEST-MD5 CRAM-MD5): using CRAM-MD5> AUTH CRAM-MD5 'PDE0OTQyOTcxOC4yNjAwOTYwQHNlcnZlci5kb21haW4udG9wPg=='> dGVzdCBmOTUyY2RkM2VlODBiMzk1YjYxNDI4NjBlYzg2Y2ExZnJvb3Q= 'Authentication successful'Authentication of test@localhost succeeded> MAIL FROM: <[email protected]> 'Ok'> RCPT TO: <[email protected]> 'Ok'> DATA 'End data with <CR><LF>.<CR><LF>' 'Ok: queued as'> QUIT 'Bye'
SMTP Server Connection Diagnostics Tool
Ecco un’altra alternativa telnet che permette di fare facilmente il controllo del relay SMTP. Si tratta di un SMTP Server Connection Diagnostics Tool costruito da SocketLabs. Ha un’autenticazione integrata, supporta connessioni aperte e SSL, ed è più sicuro di telnet. Inoltre, non è necessario digitare manualmente tutti i comandi necessari per testare il relaying. Lo strumento ha una libreria di macro, che facilita il flusso dei test.
Installazione
In questo caso, non è necessario installare lo strumento. Hai solo bisogno di scaricarlo ed eseguirlo. Ecco come si presenta:
Test del relay SMTP
- Step 1: Connettiti al server
Seleziona Actions nell’angolo sinistro dello strumento e clicca Connect. Inserisci le informazioni sul tuo server SMTP: nome del server e porta. Mantieni l’opzione LocalIp come predefinita. Clicca Connect.
- Step 2: Prova il relaying
Usa le macro di comando integrate per inviare un’email dal tuo server SMTP. In realtà, il flusso è lo stesso che con telnet. La differenza è che non devi fare tutto manualmente.
swaks
Questo è il tester di transazioni SMTP per tutti gli usi, abbreviato da Swiss Army Knife SMTP. swaks è uno strumento a riga di comando scritto in Perl per testare le impostazioni SMTP. È un vero e proprio strumento dinosauro – la prima versione è uscita nel 2003. Tuttavia, è stato aggiornato molte volte e ora gestisce numerose caratteristiche ed estensioni SMTP come TLS, autenticazione, pipelining e molte altre. Se iterare telnet smtp.example.com 25
richiede troppo tempo, swaks è sicuramente ciò di cui avete bisogno.
Installazione
Eseguire la seguente procedura per installare swaks su Ubuntu:
apt-get install swaks
su macOS
brew install swaks
Test del relay SMTP
Diciamo che avete un server SMTP smtp.example.com
che permette il relay per utenti autenticati. Potete testarlo come segue:
swaks --to [email protected] \ [email protected] \ --auth \ --auth-user=john \ --auth-password=hell-no \ --server smtp.example.com
Questo è l’aspetto della conversazione:
smtp.example.com Hi remote.server.name PIPELINING AUTH PLAIN CRAM-MD5> AUTH CRAM-MD5 PGQ4ZcakejQ5ZDcheeseiQHNreC54ZW4taG9zpiesZy5uZXQ+> c3RldsubliminalZmZDMxZmVkNmJjswimM2M4M2VkM2IsmileMDg= Authentication successful for john - Authenticated john; relaying permitted> MAIL FROM:<[email protected]> <[email protected]>, sender OK - how exciting to get mail from you!> RCPT TO:<[email protected]> <[email protected]>, recipient ok> DATA go ahead> Date: Sun, 05 Apr 2019 21:24:34 +0100> To: [email protected]> From: [email protected]> Subject: Test email > X-Mailer: swaks v20181104.0 jetmore.org/john/code/#swaks>> This is a test mailing> . Queued!> QUIT closing connection=== Connection closed with remote host.
Strumenti basati sul web per testare il relay SMTP
Il test diventa molto più facile con gli strumenti basati sul web. Per la maggior parte di essi, basta inserire il vostro server SMTP e cliccare il pulsante per fare le cose. Inoltre, alcuni di essi ti permettono di testare il server per il relay aperto! Ecco le opzioni più utili.
Mail Server Testing Tool by DNS EXIT
DNS EXIT fornisce una suite di servizi DNS statici/dinamici e altre soluzioni legate alla posta elettronica. Con il loro Mail Server Testing Tool, potete telnet al vostro server SMTP e provare a consegnare il messaggio. Se ci sono dei difetti di configurazione, lo strumento vi farà sapere e vi darà un suggerimento su come risolvere l’errore.
SMTP server checker by DNSQueries
Questo strumento è utile per controllare lo stato di salute del server SMTP. Inoltre, ti farà sapere se tutto funziona correttamente e se il server non è un relay aperto. Inserisci il nome dell’host del tuo server SMTP e clicca su Run tool. Proverà a connettersi al server e ad inviare email attraverso di esso. Abbiamo preso il server SMTP di Gmail e lo abbiamo controllato con il tester DNSQueries. Ecco come vengono visualizzati i risultati:
MX toolbox
SMTP Diagnostics tool di MXToolbox funziona in modo simile. Basta inserire il nome del tuo server SMTP e cliccare su Test Email Server. Ecco un esempio del risultato del test:
Inoltre, visualizza la trascrizione della sessione qui sotto.
Questo è uno strumento integrato che testa i record MX, DNS, blacklist e SMTP in un solo colpo. Se vuoi eseguire un test o una ricerca particolare, usa un comando speciale, per esempio “blacklist: smtp.example.com”.
SMTPer
“La semplicità è l’ultima sofisticazione” – questa citazione di Leonardo Da Vinci brilla in cima alla home page di SMTPer. È necessario compilare diversi campi per utilizzare questo strumento di test del relay SMTP:
- Host SMTP
- Porta
- Indirizzo email del mittente
- Indirizzo email del destinatario
Opzionalmente, è possibile selezionare “Usa connessione protetta” e “Usa autenticazione” (avendo specificato Login e Password). SMTPer è uno strumento semplice, ma può portare a termine il lavoro.
Mailtrap è uno strumento di test del relay SMTP?
Mailtrap può fare molte cose per il test delle email:
- inviare email di prova senza raggiungere le caselle di posta reali
- rilevare se le tue email sono spam
- testare l’HTML per il supporto dei client email di base
- organizzare le email di prova in caselle di posta speciali
- eseguire test di integrazione o di carico delle email tramite API
- testare il Bcc nelle tue email
Ma il test del relay SMTP non è il caso. Sotto Mailtrap c’è un falso server SMTP. Puoi usarlo al posto di un vero server per testare la capacità di invio di email della tua app. Questo ti impedirà di spammare i clienti reali con email di prova. Per saperne di più su come puoi beneficiare di Mailtrap, leggi la Guida introduttiva.
Se ti è piaciuto questo articolo, per favore condividi e spargi la voce. Lo apprezzeremo molto.