SMTP y POP3
¿Que es SMTP?
El protocolo SMTP (Protocolo simple de transferencia de
correo) es el protocolo estándar que permite la transferencia de correo de un
servidor a otro mediante una conexión punto a punto.
Éste es un protocolo que funciona en línea, encapsulado en
una trama TCP/IP. El correo se envía directamente al servidor de correo del
destinatario. El protocolo SMTP funciona con comandos de textos enviados al
servidor SMTP (al puerto 25 de manera predeterminada). A cada comando enviado
por el cliente (validado por la cadena de caracteres ASCII CR/LF, que equivale
a presionar la tecla Enter) le sigue una respuesta del servidor SMTP compuesta
por un número y un mensaje descriptivo.
A continuación se describe una situación en la que se
realiza una solicitud para enviar correos a un servidor SMTP:
·
Al abrir la sesión SMTP, el primer comando que
se envía es el comando HELO seguido por un espacio (escrito <SP>) y el
nombre de dominio de su equipo (para decir "hola, soy este equipo"),
y después validado por Enter (escrito <CRLF>). Desde abril de 2001, las
especificaciones para el protocolo SMTP, definidas en RFC 2821, indican que el
comando HELO sea remplazado por el comando EHLO.
·
El segundo comando es "MAIL FROM:"
seguido de la dirección de correo electrónico del remitente. Si se acepta el
comando, el servidor responde con un mensaje "250 OK".
·
El siguiente comando es "RCPT TO:"
seguido de la dirección de correo electrónico del destinatario. Si se acepta el
comando, el servidor responde con un mensaje "250 OK".
·
El comando DATA es la tercera etapa para enviar
un correo electrónico. Anuncia el comienzo del cuerpo del mensaje. Si se acepta
el comando, el servidor responde con un mensaje intermediario numerado 354 que
indica que puede iniciarse el envío del cuerpo del mensaje y considera el
conjunto de líneas siguientes hasta el final del mensaje indicado con una línea
que contiene sólo un punto. El cuerpo del correo electrónico eventualmente
contenga algunos de los siguientes encabezados:
o
Date (Fecha)
o
Subject (Asunto)
o
Cc
o
Bcc (Cco)
o
From (De)
Si se acepta el comando, el servidor responde con un mensaje
"250 OK".
A continuación se describe un ejemplo de transacción entre
un cliente (C) y un servidor SMTP (S):
S: 220
smtp.commentcamarche.net SMTP Ready C: EHLO machine1.commentcamarche.net S: 250
smtp.commentcamarche.net C: MAIL FROM:<webmaster@commentcamarche.net> S:
250 OK C: RCPT TO:<meandus@meandus.net> S: 250 C: RCPT
TO:<tittom@tittom.fr> S: 550 No such user here C: DATA S: 354 Start mail
input; end with <CRLF>.<CRLF> C: Subject: Hola C: Hola Meandus: C:
¿Cómo andan tus cosas? C: C: ¡Nos vemos pronto! C: <CRLF>.<CRLF> S:
250 C: QUIT R: 221 smtp.commentcamarche.net closing transmission
Las especificaciones básicas del protocolo SMTP indican que
todos los caracteres enviados están codificados mediante el código ASCII de 7
bits y que el 8º bit sea explícitamente cero. Por lo tanto, para enviar
caracteres acentuados es necesario recurrir a algoritmos que se encuentren
dentro de las especificaciones MIME:
·
base64
para archivos adjuntos
·
quoted-printable
(abreviado QP) para caracteres especiales utilizados en el cuerpo del mensaje.
Por lo tanto, es posible enviar un correo electrónico
utilizando un simple telnet al puerto 25 del servidor SMTP:
telnet
smtp.commentcamarche.net 25
(El servidor indicado anteriormente no existe. Intente
reemplazar commentcamarche.net por el nombre de dominio de su proveedor de
servicios de Internet.
A continuación se brinda un resumen de los principales
comandos SMTP:
Comando
|
Ejemplo
|
Descripción
|
HELO (ahora EHLO)
|
EHLO 193.56.47.125
|
Identificación que utiliza la dirección IP o el nombre de dominio del
equipo remitente
|
MAIL FROM:
|
MAIL FROM: originator@domain.com
|
Identificación de la dirección del remitente
|
RCPT TO:
|
RCPT TO: recipient@domain.com
|
Identificación de la dirección del destinatario
|
DATA
|
DATA message
|
Cuerpo del correo electrónico
|
QUIT
|
QUIT
|
Salida del servidor SMTP
|
HELP
|
HELP
|
Lista de comandos SMTP que el servidor admite
|
Todas las especificaciones del protocolo SMTP se encuentran
definidas en RFC 821 (desde abril de 2001, las especificaciones del protocolo
SMTP se encuentran definidas en RFC 2821).
¿Que es POP3?
Existen dos versiones principales de este protocolo, POP2 y
POP3, a los que se le asignan los puertos 109 y 110 respectivamente, y que
funcionan utilizando comandos de texto radicalmente diferentes.
Al igual que con el protocolo SMTP, el protocolo POP (POP2 y
POP3) funciona con comandos de texto enviados al servidor POP. Cada uno de
estos comandos enviados por el cliente (validados por la cadena CR/LF) está
compuesto por una palabra clave, posiblemente acompañada por uno o varios
argumentos, y está seguido por una respuesta del servidor POP compuesta por un
número y un mensaje descriptivo.
A continuación se brinda un resumen de los principales
comandos POP2:
Comandos POP2
|
|
Comando
|
Descripción
|
HELLO
|
Identificación que utiliza la dirección IP del equipo remitente
|
FOLDER
|
Nombre de la bandeja de entrada que se va a consultar
|
READ
|
Número del mensaje que se va a leer
|
RETRIEVE
|
Número del mensaje que se va a recoger
|
SAVE
|
Número del mensaje que se va a guardar
|
DELETE
|
Número del mensaje que se va a eliminar
|
QUIT
|
Salida del servidor POP2
|
A continuación se brinda un resumen de los principales
comandos POP3:
Comandos POP3
|
|
Comando
|
Descripción
|
USER identification
|
Este comando permite la autenticación. Debe estar seguido del nombre
de usuario, es decir, una cadena de caracteres que identifique al usuario en
el servidor. El comando USER debe preceder al comando PASS.
|
PASS password
|
El comando PASS permite especificar la contraseña del
usuario cuyo nombre ha sido especificado por un comando USER previo.
|
STAT
|
Información acerca de los mensajes del servidor
|
RETR
|
Número del mensaje que se va a recoger
|
DELE
|
Número del mensaje que se va a eliminar
|
LIST [msg]
|
Número del mensaje que se va a mostrar
|
NOOP
|
Permite mantener la conexión abierta en caso de inactividad
|
TOP <messageID> <n>
|
Comando que muestra n líneas del mensaje, cuyo número
se da en el argumento. En el caso de una respuesta positiva del servidor,
éste enviará de vuelta los encabezados del mensaje, después una línea en
blanco y finalmente las primeras n líneas del mensaje.
|
UIDL [msg]
|
Solicitud al servidor para que envíe una línea que contenga
información sobre el mensaje que eventualmente se dará en el argumento. Esta
línea contiene una cadena de caracteres denominada unique identifier
listing (lista de identificadores únicos) que permite identificar de
manera única el mensaje en el servidor, independientemente de la sesión. El
argumento opcional es un número relacionado con un mensaje existente en el
servidor POP, es decir, un mensaje que no se ha borrado.
|
QUIT
|
El comando QUIT solicita la salida del servidor POP3.
Lleva a la eliminación de todos los mensajes marcados como eliminados y envía
el estado de esta acción
|
Por lo tanto, el protocolo POP3 administra la autenticación
utilizando el nombre de usuario y la contraseña. Sin embargo, esto no es
seguro, ya que las contraseñas, al igual que los correos electrónicos, circulan
por la red como texto sin codificar (de manera no cifrada). En realidad, según
RFC 1939, es posible cifrar la contraseña utilizando un algoritmo MD5 y
beneficiarse de una autenticación segura. Sin embargo, debido a que este
comando es opcional, pocos servidores lo implementan. Además, el protocolo POP3
bloquea las bandejas de entrada durante el acceso, lo que significa que es
imposible que dos usuarios accedan de manera simultánea a la misma bandeja de
entrada.
De la misma manera que es posible enviar un correo
electrónico utilizando telnet, también es posible acceder al correo entrante
utilizando un simple telnet por el puerto del servidor POP (110 de manera
predeterminada):
telnet
mail.commentcamarche.net 110
(El servidor indicado anteriormente no existe. Intente
reemplazar commentcamarche.net por el nombre de dominio de su proveedor de
servicios de Internet.)
S: +OK
mail.commentcamarche.net POP3 service S: (Netscape Messaging Server 4.15 Patch
6 (built Mar 31 2001)) C: USER jeff S: +OK Name is a valid mailbox C: PASS
password S: +OK Maildrop ready C: STAT S: +OK 2 0 C: TOP 1 5 S: Subject: Hola
S: Hola Meandus: S: ¿Cómo andan tus cosas? S: S: ¡Nos vemos pronto! C: QUIT S:
+OK
No hay comentarios:
Publicar un comentario