Sunteți pe pagina 1din 6

c 

c c 


c c    

   


!!"#$"%##&

En una conferencia sobre Troubleshooting que dimos en el GLUE, me llamó la atención


que muy pocas personas supieran enviar correos electrónicos usando sólo la línea de
comandos (y no a través de un cliente de correo, como Outlook u Outlook Express). Por
eso el siguiente artículo.

Muchas veces, como parte de las pruebas que realizamos para resolver problemas de
flujo de correo entre servidores, luego de hacer un TroubleShooting de Redes Básico, el
siguiente paso es revisar que la comunicación SMTP pueda establecerse exitosamente.

Para esto es necesario conocer un poco de "Ö 

Primero, desde una línea de comandos, hay que conectarse al Servidor SMTP usando:

telnet <Servidor_SMTP> 25

El 25 luego del nombre o dirección IP del servidor corresponde al puerto al cual


estamos estableciendo la conexión, en este caso el 25 es el estándar para smtp.

Si la conexión se establece exitosamente, el servidor mostrará una respuesta consistente


de un código, y un á 
con su nombre, el software SMTP que está ejecutando, la
versión de éste, la fecha y la hora. Un servidor SMTP MS Exchange 2003 SP2,
despliega un banner similar a este:

En este punto es interesante mencionar que como respuesta a nuestros comandos (o


_
á), el servidor siempre nos entregará un código numérico con la siguiente
nomenclatura:

K 2XX: operación ha concluido con éxito.


K 3XX: operación aceptada, pero se esperan nuevos datos.
K †XX: error, servidor queda a la espera que se repita la instrucción.
K 5XX: error permanente.

Los pasos a seguir son:

1. ÖÖ'. Como personas educadas que somos, lo que corresponde es


saludar al Servidor, indicando nuestra identificación (nuestro nombre dns). El Servidor,
que también es todo un caballero, nos responderá el saludo (con su correspondiente
código).
Yota: algunos sistemas verifican que nosotros 





 
 

realizando consultas de DYS-Reverso o verificando nuestra IP en una Lista Yegra, pero
esos temas los veremos pronto, en los artículos de Antispam que pronto publicaré ;)

2.   ()*, usando los comandos MAIL FROM: y


RCPT TO:, éste último más de una vez, en caso de querer enviar mail a más de un
destinatario.
Yota: Los comandos SMTP no son sensibles a mayúsculas y minúsculas.

El servidor nos validó como remitentes válidos y validó al destinatario de nuestro mail
(su dirección de correo electrónico) como válida, y está listo para recibir el mensaje.

3. ' c+. Para realizar esto le escribimos el comando


DATA. Esto le indica al servidor que comenzaremos a enviar el cuerpo del correo ("la
Data").

El Servidor nos responde que podemos comenzar a enviar los datos, y que debemos
presionar la secuencia ->,->  para indicarle que hemos terminado con el
cuerpo del mensaje (Enter, luego un punto y enter nuevamente).
En el cuerpo del mensaje se incluye una línea con el comando Ô  (mail de
prueba). Esta línea es importante pues la gran mayoría de los servidores de correo
bloquean los mensajes sin "asunto" por considerarlos SPAM.

Luego, el Servidor nos responderá que el mensaje fue recibido correctamente,


indicándonos el identificador interno que le dio al correo.

†. cc-.. Finalmente, debemos cerrar la sesión en el servidor con el


comando QUIT.

En este primer artículo de la serie, vimos como enviar un correo electrónico usando sólo
comandos smtp. En el Próximo Artículo veremos cómo enviar correo cuando el servidor
SMTP Requiere de Autentificación.

Gonzalo

Etiquetas de Technorati: Línea de Comandos,SMTP,Exchange Server


Posted: 21/11/2009 0:31 por gbr | con 3 comment(s)
Archivado en: Exchange Server,Yetworking

c  c 
c c/ Ö 0  c1 

   


!!"#$"%##&

En un artículo anterior aprendimos cómo enviar un correo electrónico a mano, es decir,


utilizando solamente la línea de comandos y las instrucciones del protocolo SMTP.

La gran mayoría de los servidores SMTP del mundo piden 



 
 a los clientes
que tratan de enviar correos a través de ellos, cuando el correo no está dirigido al
dominio SMTP de éste (algunos simplemente las exigen, como espero mostrarles en una
futura sección de Antispam), por esta razón en esta segunda parte veremos cómo es el
procedimiento para enviar correo electrónico autentificándonos en el servidor, es decir,
entregando nuestros nombre de usuario y contraseña durante la sesión SMTP.

Los detalles sobre cómo es una sesión SMTP pueden verlos en el post sobre cómo
enviar un correo electrónico a mano, por lo que ahora nos centraremos en la parte de la
autenticación.

Primero, desde una línea de comandos, hay que conectarse al Servidor SMTP usando:

telnet <Servidor_SMTP> 25

Como respuesta obtendremos un á 


similar a este:

Los pasos a seguir son:

1. ÖÖ'. Ahora, saludaremos al servidor con un comando EHLO, en vez


de HELO. Esto no es dislexia (ni 
 ), sino que es una abreviación de Extended
HELO ;).
En el Banner vimos que el Servidor es un Servidor que soporta Extended SMTP
(ESMTP), por lo que como respuesta a este saludo, el servidor nos entregará una lista de
los comandos de ESMTP que soporta.
Yota: algunos sistemas verifican que nosotros 





 
 

realizando consultas de DYS-Reverso o verificando nuestra IP en una Lista Yegra, pero
esos temas los veremos pronto, en los artículos de Antispam que pronto publicaré ;)

2.   (2, usando el comando AUTH


LOGIY, decimos al servidor que vamos a autenticarnos usando login y password, por lo
que el servidor nos responde con un amistoso: 3345 67809 QUË?

ESMTP usa como método de codificación Base6†, por lo que, salvo que seas un balazo
(de)codificando en Base6†, es indispensable que tengas un codificador/decodificador de
Base6† a mano ;).
Luego de una búsqueda por "Base6† Decoder", nuestro buscador favorito debiese
darnos al menos una respuesta, por ejemplo yo usé éste decodificador.

Ahora si «

33† es un código para indicarnos: OK, esperando Datos, y 5 67809 , que es la
codificación para "0 "-.

Usando el Codificador transformamos nuestro nombre de usuario a Base6†, y lo


pegamos en la línea de comandos. Si nuestro login name fuese, por ejemplo:
nombre.apellido, al servidor hay que ingresarle: bm9tYnJlLmFwZWxsaWRv.

La respuesta del servidor ahora es: 3340:;<3' =9.


33†, al menos ahora ya sabemos lo que significa ;), y nuestro decodificador de base6†
nos dice que "UGFzc3dvcmQ6" es la codificación para "Password:".
Yecesitamos, entonces, codificar nuestro password y pegarlo para enviárselo al
servidor. Si nuestro password fuese, por ejemplo: P@assw0rd, la codificación sería:
UEBhc3Y3MHJk.

Finalmente, si ingresamos bien la contraseña, el servidor nos entrega un mensaje de


autentificación exitosa: %36%,&,#7. (mmm....esta vez sin
codificar? ... cómo?, y justo cuando ya nos estábamos acostumbrando al Base6†... ;)

En este momento, K
  
  

 
_ , por lo que en adelante el
proceso de envío de mail es el ya conocido.

3.   ()* MAIL FROM: y RCPT TO.


Lo importante es que ahora, dependiendo de la configuración del servidor, podríamos
enviar correos sin importar que el remitente y/o destinatario pertenecieran al dominio
SMTP del servidor. En nuestro ejemplo, el dominio smtp del servidor es > ,
pero como remitente se usó una dirección > , y como destinatarios
direcciones >  y >   
†. ' c+. Usamos el comando DATA. Dentro del cuerpo
del mensaje es muy recomendable incluir un nombre de destinatario (Esto le indica al
servidor que comenzaremos a enviar el cuerpo del correo ("la Data").

El Servidor nos responde que podemos comenzar a enviar los datos, y que debemos
presionar la secuencia ->,->  para indicarle que hemos terminado con el
cuerpo del mensaje (Enter, luego un punto y Enter nuevamente).

En el cuerpo del mensaje se incluye una línea con el comando ;  (Usuario
Gonzalez), y otra con el comando + (mail de prueba). Estas líneas son
importantes pues la gran mayoría de los servidores de correo bloquean los mensajes sin
"asunto", o sin nombre de remitente por considerarlos SPAM.

0
'c-7%##&->
 .'?@ ,,

Luego, el Servidor nos responderá que el mensaje fue recibido correctamente,


indicándonos el identificador interno que le dio al correo.

5. cc-.. Finalmente, debemos cerrar la sesión en el servidor con el


comando QUIT. (como lo muestra la imagen anterior)

En este segundo artículo de la serie, vimos como enviar un correo electrónico


autentificándonos en el servidor con nuestro nombre de usuario y contraseña usando el
protocolo ESMTP.

Gonzalo

Etiquetas de Technorati: Exchange Server,Yetworking,SMTP


Posted: 2†/11/2009 11:3† por gbr | con 3 comment(s)
Archivado en: Exchange Server,Yetworking


U   







  


  

!" # $ % %!"& 

' $ "(%) &% " #!


%%!

%(*
$

%
!*

'%
(! 





S-ar putea să vă placă și