¿Alguna vez se ha preguntado qué sucede cuando presiona el botón Send en su programa de correo electrónico? Probablemente no, supongo, siempre y cuando funcione. Esta es exactamente la razón por la que debería preguntarse. En caso de que algo no funcione, es bueno saber lo que no funciona. Normalmente, esa es la mitad de la solución.
Cuando usted envía un correo electrónico, SMTP entra en juego. SMTP es la abreviatura de Simple Mail Transfer Protocol (Protocolo simple de transferencia de correo) según se define en RFC 5321: Protocolo simple de transferencia de correo. Su cliente de correo se comunica con el servidor SMTP utilizando este procedimiento limpio y sencillo para enviar el correo electrónico de un lugar a otro.
Índice de contenidos
El Flirt
Su programa de correo electrónico se convierte en un cliente SMTP, se conecta al puerto 25 de su servidor de correo (normalmente el puerto SMTP) y – dice EHLO. Las computadoras, al final, son sólo humanas y lo que cuenta es que quieren ser educadas. En realidad, no intenta ser cortés, sino usar adiciones posteriores a SMTP que han producido dos sabores del último comando HELO (el comando SMTP generalmente consiste en cuatro caracteres).
Dos sabores de HELO
EHLO, siendo el más reciente, hace que el servidor anuncie todas las características adicionales (como la notificación de estado de entrega o la capacidad de transportar mensajes que contengan caracteres ASCII distintos de los seguros) que soporta.
No todos los servidores permiten este saludo, pero es necesario aceptar un HELO sencillo que, naturalmente, asume que no hay características adicionales. Ambos comandos hello requieren que el cliente especifique su dominio después de **LO, sin embargo. En la práctica, esto parece algo así:
220 mail.domain.net Servidor ESMTP
HELO
501 HELO requiere dirección de dominio
>. HELO localhost
250 mail.domain.net Hello localhost[127.0.0.0.1], encantado de conocerle
(Mi entrada está en cursiva, la salida del servidor es negra; las líneas que comienzan con 5 indican un error.)
El remitente
El resto del protocolo realmente merece el atributo simple. Si desea enviar un correo electrónico, comience con las palabras clave MAIL FROM:. Después de esto viene la dirección de correo electrónico del remitente, como lo sugiere el remitente. Sin embargo, no olvide poner corchetes alrededor de la dirección (como ). Continuando con nuestro ejemplo, lo hemos hecho:
CORREO DE:
250 sender@example.com… Remitente correcto
El destinatario
Después de que el servidor haya aceptado la dirección del remitente, el cliente puede dar la dirección del destinatario. El comando para esta acción, RCPT TO: de nuevo es bastante sugerente. Quiero enviarme correo a mí mismo:
RCPT TO: recipient@example.com
250 support@lifewireguide.com… Destinatario ok (cola de espera)
Que el servidor se coloque en cola significa precisamente eso: guardará el correo localmente y lo enviará junto con el resto de correo en cola en intervalos (por ejemplo, cada 30 minutos). Este comportamiento depende de la configuración y el servidor también puede entregar el correo instantáneamente.
Ya casi hemos terminado. Lo que todavía falta, sin embargo, es la parte importante: el mensaje real.
El mensaje
Ahora que el «sobre» está terminado, los datos del mensaje de correo electrónico tal y como está pueden seguir. Estos «datos» consisten en el cuerpo del correo electrónico así como en los campos del encabezado.
El comando para iniciar el estado que hace que el servidor acepte el mensaje es DATA. A continuación se encuentran todos los campos del encabezado del mensaje de correo electrónico y el cuerpo del mismo, que constituyen sólo un gran bloque de texto (o datos). Para decirle al servidor que la entrada está terminada se utiliza un punto en una línea por sí mismo (r.r). Así que envío mi mensaje:
DATA
354 Ingresar correo, terminar con «. Message-ID:
Fecha: dom, 17 ago 1997 18:48:15 +0200
De: Heinz Tschabitscher.Para: Heinz Tschabitscher (recipient@example.com)Sujeto: Para el concurso Sumarize-Proust Contest
Off to Swan’s World!
250 SAA19153 Mensaje aceptado para entrega
Sí, esto significa que puede indicar un nombre completamente diferente del que aparece en el campo Para:. Por ejemplo, puede utilizar «Lista de destinatarios suprimida» .
El final
Ahora puede enviar tantos correos electrónicos como desee repitiendo los pasos desde MAIL FROM: hasta .. Si has terminado con eso, puedes salir del servidor con el comando QUIT y eso es lo que hacemos:
QUIT
221 Adiós
¿Cómo puedo hacer esto?
La solución no trivial es telnetar a su servidor de correo saliente (puede encontrar su dirección en la configuración de la cuenta de su cliente de correo electrónico) en el puerto 25.
- Abra una línea de comandos.
- Escriba «telnet 25».
- Hable con el servidor utilizando SMTP.
La forma más fácil es usar este applet de Java, que intenta imitar el protocolo SMTP y le guía a través del diálogo.