Probando un servidor de correo o enviando un correo con telnet

Siempre es bueno realizar pruebas atómicas para probar sistemas. Por ejemplo si uso un gran cliente de correo y este no envía, puede ser desde el sistema operativo del cliente, su cliente de correo, el servidor de correos, etc. Finalmente no sabemos a quien es el responsable por la falla. Entonces es mejor hacer pruebas locales de envió, pruebas de conexión, etc. descomponiendo todo el proceso de envió en pequeñas unidades.

Un gran método para saber si el servidor de correo esta funcionando es usar un cliente telnet para realizar un envió. Es simple, podemos ver que nos dice el servidor, podemos verificar la conexion etc. Aca les dejo los pasos para realizar un envió.

# telnet smtp.correo.cl smtp

Trying smtp.correo.cl
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 fbreveal.com ESMTP Sendmail 8.13.8/8.13.8; Tue, 22 Oct 2013 05:05:59 -0400
HELO yahoo.com
250 tecadmin.net Hello tecadmin.net [127.0.0.1], pleased to meet you
mail from: sender@tecadmin.net
250 2.1.0 sender@tecadmin.net... Sender ok
rcpt to: myemail@ymail.com
250 2.1.5 myemail@ymail.com... Recipient ok
data
354 Enter mail, end with "." on a line by itself
Hey
This is test email only

Thanks
.
250 2.0.0 r9M95xgc014513 Message accepted for delivery
quit
221 2.0.0 fbreveal.com closing connection
Connection closed by foreign host.

Les dejo una explicación paso a paso:

Paso 1: Me conecto al servidor de correo:
Desde una consola hacen un telnet al servidor de correo, vamos a suponer que responde por smtp
El comando es: telnet smtp.correo.cl smtp

#telnet smtp.correo.cl smtp

Trying smtp.correo.cl
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 fbreveal.com ESMTP Sendmail 8.13.8/8.13.8; Tue, 22 Oct 2013 05:05:59 -0400

Si no responde, se debe probar la conexion, si logramos llegar al servidor, si el puerto responde, etc.

ok, nos contesto, ahora debemos "saludar al servidor".
El comando es: HELO yahoo.com

HELO yahoo.com
250 tecadmin.net Hello tecadmin.net [127.0.0.1], pleased to meet you

Nos contesto que reconoce el saludo, seguimos bien


Definimos a quien le enviamos el correo. Es importante respetar los espacios.
El comando es: mail from: sender@tecadmin.net

mail from: sender@tecadmin.net
250 2.1.0 sender@tecadmin.net... Sender ok

reconoce la cuenta de correo de destino.


Decimos quien envía el correo.
El comando es: rcpt to: myemail@ymail.com

rcpt to: myemail@ymail.com
250 2.1.5 myemail@ymail.com... Recipient ok

bien, acepto que yo le estoy escribiendo


Empezamos a escribir el correo, para finalizar la escritura se debe dejar una linea con un . y presionar "ENTER" con eso se le dice que se termino de escribir el texto.
El comando es: data

data
354 Enter mail, end with "." on a line by itself



Cerramos la conexion con el servidor.
El comando es: quit

quit
221 2.0.0 fbreveal.com closing connection
Connection closed by foreign host.

Se le pueden agregar mas cosas al correo, pero para hacer pruebas de envió con lo anterior es suficiente.

ojala les sirva