Este artículo explica cómo testear un servidor de correo SMTP con autenticación desde línea de comandos en Linux.

Hace algunos (muchos) años demostré cómo enviar correo con netcat conectándose a un servidor de correo SMTP con open relay (envío de correo sin autenticación). En esta oportunidad voy a demostrar como testear el envío de correo desde un servidor SMTP con autenticación, donde es es necesario enviar usuario y contraseña luego de conectarse.

Para comenzar es necesario convertir el nombre de usuario y contraseña de autenticación SMTP a codificación base64. En este ejemplo el usuario es "linuxito" y la contraseña "trustno1":

emi@vaio:~$ echo -n linuxito | base64
bGludXhpdG8=
emi@vaio:~$ echo -n trustno1 | base64
dHJ1c3RubzE=

El servidor de correo SMTP con autenticación es de Mailjet (nombre de host "in-v3.mailjet.com") y acepta peticiones en el puerto 587. Conectarse con netcat como de costumbre:

nc -vv in-v3.mailjet.com 587

Salvo que esta vez, en lugar de iniciar con el comando SMTP "HELO", se inicia con el comando ESMTP "EHLO", el cual corresponde con "Extended HELO".

Luego se autentica con el comando AUTH LOGIN.

A continuación, un ejemplo completo (en color blanco los comandos ingresados por el usuario):

emi@vaio:~$ nc -vv in-v3.mailjet.com 587
DNS fwd/rev mismatch: in.mailjet.com != 85.96.199.104.bc.googleusercontent.com
in.mailjet.com [104.199.96.85] 587 (submission) open
220 in.mailjet.com ESMTP Mailjet
ehlo mysuperduperdomain.com
250-smtpin.mailjet.com
250-PIPELINING
250-SIZE 15728640
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 SMTPUTF8
auth login
334 VXNlcm5hbWU6
bGludXhpdG8=
334 UGFzc3dvcmQ6
dHJ1c3RubzE=
235 2.7.0 Authentication successful
mail from: test@mysuperduperdomain.com
250 2.1.0 Ok
rcpt to: admin@linuxito.com
250 2.1.5 Ok
DATA
354 End data with .
hola mundo
.
250 OK queued as ecfb7726-d321-483a-8d93-61e1c8ba11ca

Se envía un correo de "test@mysuperduperdomain.com" a "admin@linuxito.com" utilizando el servidor "in-v3.mailjet.com".

Compartí este artículo