El correo
electrónico (E-mail) es probablemente la aplicación TCP/IP
más usada. Los protocolos de correo básicos de correo proporcionan
intercambio de correo y mensajes entre hosts TCP/IP hosts; se han añadido
servicios para la transmisión de datos que no se pueden representar
con texto ASCII de 7 bits.
Hay tres protocolos estándares que se aplican a este tipo de
correo. Todos son recomendados. El término SMTP se emplea con
frecuencia para referirse a la combinación de los tres protocolos,
por su estrecha interrelación, pero estrictamente hablando, SMTP
es sólo uno de los tres.
|
 |
 |
Flujo de transacción de correo de SMTP:
Aunque los comandos y réplicas de correo están definidas
rígidamente, el intercambio se puede seguir en Figura - Flujo
de datos normal de SMTP. Todos los comandos, réplicas o datos
intercambiados son líneas de texto, delimitadas por un <CRLF>.
Todas las réplicas tienen un código numérico el
comienzo de la línea.
- El emisor SMTP establece una conexión TCP con el SMTP de
destino y espera a que el servidor envíe un mensaje "220
Service ready" o "421 Service not available" cuando
el destinatario es temporalmente incapaz de responder.
- Se envía un HELO (abreviatura de "hello"), con
el que el receptor se identificará devolviendo su nombre de
dominio. El SMTP emisor puede usarlo para verificar si contactó
con el SMTP de destino correcto.
- Si el emisor SMTP soporta las extensiones de SMTP definidas en el
RFC 1651, puede sustituir el comando HELO por EHLO. Un receptor SMTP
que no soporte las extensiones responderá con un mensaje "500
Syntax error, command unrecognized". El emisor SMTP debería
intentarlo de nuevo con HELO, o si no puede retransmitir el mensaje
sin extensiones, enviar un mensaje QUIT.
Si un receptor SMTP soporta las extensiones de servicio, responde
con un mensaje multi-línea 250 OK que incluye una lista de las
extensiones de servicio que soporta.
- El emisor inicia ahora una transacción enviando el comando
MAIL al servidor. Este comando contiene la ruta de vuelta al emisor
que se puede emplear para informar de errores. Nótese que una
ruta puede ser más que el par buzón@nombre de dominio
del host. Además, puede contener una lista de los hosts de
encaminamiento. Si se acepta, el receptor replica con un "250
OK".
- El segundo paso del intercambio real de correo consiste en darle
al servidor SMTP el destino del mensaje(puede haber más de
un receptor). Esto se hace enviando uno o más comandos RCPT
TO:<forward-path>. Cada uno de ellos recibirá una respuesta
"250 OK" si el servidor conoce el destino, o un "550
No such user here" si no.
- Cuando se envían todos los comandos rcpt, el emisor envía
un comando DATA para notificar al receptor que a continuación
se envían los contenidos del mensaje. El servidor replica con
"354 Start mail input, end with <CRLF>.<CRLF>".
Nótese que se trata de la secuencia de terminación que
el emisor debería usar para terminar los datos del mensaje.
- El cliente envía los datos línea a línea, acabando
con la línea <CRLF>. <CRLF> que el servidor reconoce
con "250 OK" o el mensaje de error apropiado si cualquier
cosa fue mal.
Ahora hay varias acciones posibles:
- El emisor no tiene más mensajes que enviar; cerrará
la conexión con un comando QUIT, que será respondido
con "221 Service closing transmission channel".
- El emisor no tiene más mensajes que enviar, pero está
preparado para recibir mensajes(si los hay) del otro extremo.
Mandará el comando TURN. Los dos SMTPs intercambian sus
papelees y el emisor que era antes receptor puede enviar ahora
mensajes empezando por el paso 3 de arriba.
- El emisor tiene otro mensaje que enviar, y simplemente vuelve
al paso 3 para enviar un nuevo MAIL.
|