Una forma de probar servidores de correo SMTP consiste en conectarse directamente al puerto 25 con netcat o telnet y "chatear" con el servidor utilizando el protocolo SMTP. Para esto es necesario conocer los comandos SMTP básicos.



SMTP (Simple Mail Transfer Protocol) es un protocolo para envío de correo y utiliza el puerto TCP 25. Típicamente los servidores de correo utilizan SMTP para enviar y recibir correo. Las aplicaciones cliente (Evolution, Thunderbird, etc.) utilizan SMTP sólo para enviar correo a un servidor relay (agente de envío de mensajes) y POP (Post Office Protocol) o IMAP (Internet Message Access Protocol) para recibir y verificar correo.

Para probar servidores de correo, o como forma de enviar un mensaje sin necesidad de configurar un cliente o utilizar el comando mail, es posible abrir una conexión TCP al puerto 25 del servidor de correo y utilizar comandos SMTP. Para ello es posible utilizar la herramienta telnet o netcat. Netcat se conoce como "the Swiss Army knife" (navaja de la Armada Suiza, la que usaba MacGyver) de todo administrador de red, en GNU/Linux se invoca con el comando nc, por ejemplo:

nc -vv smtp.miservidordecorreo.com 25

La opción -vv se utiliza para que la salida sea más verbosa (mayor detalle en la información). También es posible utilizar telnet, aunque es mejor netcat:

telnet smtp.miservidordecorreo.com 25

Comandos SMTP

Una vez abierta la conexión con el servidor (si ha respondido con el código 220) es necesario utilizar comandos SMTP respetando el protocolo. Primero se debe declarar desde qué dominio se envía el mensaje (no hace falta declarar el dominio real) utilizando el comando HELO, por ejemplo:

HELO pepe.com

Luego se indica la dirección del remitente, utilizando MAIL FROM (debe respetarse la sintaxis):

MAIL FROM: micuenta@pepe.com

A continuación se indica la dirección destino, utilizando RCPT TO:

RCPT TO: pepe@gmail.com

Para comenzar a escribir el mensaje se introduce el comando DATA, si se desea agregar el asunto debe ingresarse Subject:, el título del asunto y luego ingresar dos veces la tecla <enter>. Luego de escribir el mensaje se debe indicar al servidor que se ha finalizado, para esto se debe ingresar una línea que contenga sólo un punto (la secuencia debe ser <enter>.<enter>). El servidor debe responder todos los comandos con el código 250. Si no es así es posible revisar la lista de códigos de respuesta SMTP en la página 44 de la RFC 2821.

Para cerrar la conexión se ingresa el comando QUIT.

Un ejemplo

Protocolo SMTP:

Mensaje recibido:


Tal vez pueda interesarte


Compartí este artículo