Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir, y comunicar públicamente la obra, y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer, y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera, o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar, o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento, y los derivados de éste se proporcionan tal cual son, y los autores no asumirán responsabilidad alguna si el usuario, o lector, hace mal uso de éstos.
Introducción.
Preparativos.
A fin de poder realizar todas las pruebas correspondientes a cada protocolo, instale con el mandato yum los paquetes netcat (nc), dovecot, y postfix, o bien sendmail.
Si elige utilizar sendmail, ejecute lo siguiente:
yum -y install mailx nc dovecot sendmail
|
Si elige utilizar postfix, ejecute lo siguiente:
yum -y install mailx nc dovecot postfix
|
Si utiliza CentOS 5, o Red Hat Enterprise Linux 5, omita el siguiente paso. Si utiliza CentOS 6, o Red Hat Enterprise Linux 6, edite el archivo /etc/dovecot/conf.d/10-mail.conf:
vim /etc/dovecot/conf.d/10-mail.conf
|
Alrededor de la línea 30 del archivo /etc/dovecot/conf.d/10-mail.conf, establezca mbox:~/mail:INBOX=/var/mail/%u como valor del parámetro mail_location.
# See doc/wiki/Variables.txt for full list. Some examples:
#
# mail_location = maildir:~/Maildir
# mail_location = mbox:~/mail:INBOX=/var/mail/%u
# mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
#
# <doc/wiki/MailLocation.txt>
#
mail_location = mbox:~/mail:INBOX=/var/mail/%u
|
Inicie el servicio dovecot:
service dovecot start chkconfig dovecot on
|
Establezca sendmail, o postfix, como agente de transporte de correo (MTA, Mail Transport Agent) predeterminado del sistema, utilizando el mandato alternatives, del siguiente modo:
alternatives --config mta
|
Lo anterior devolverá una salida similar a la siguiente, donde deberá elegir entre postfix, y sendmail como MTA predeterminado del sistema:
Hay 2 programas que proporcionan 'mta'.
Selección Comando
-----------------------------------------------
1 /usr/sbin/sendmail.postfix
*+ 2 /usr/sbin/sendmail.sendmail
Presione Intro para mantener la selección actual[+], o escriba el número de la selección: 2
|
Si eligió utilizar sendmail en lugar de postfix, detenga este último (es el MTA predeterminado en CentOS 6, y Red Hat Enterprise Linux 6) e inicie el servicio sendmail:
service postfix stop chkconfig postfix off service sendmail start chkconfig sendmail on
|
Si eligió utilizar postfix en lugar de sendmail, detenga este último> (es el MTA predeterminado en CentOS 5, y Red Hat Enterprise Linux 5) e inicie el servicio postfix:
service sendmail stop chkconfig sendmail off service postfix start chkconfig postfix on
|
En todo momento podrá conmutar de nuevo entre Sendmail, o Postfix, como MTA predeterminado del sistema, utilizando este mismo procedimiento.
Protocolos utilizados.
SMTP (Simple Mail Transfer Protocol).
Es un protocolo estándar de Internet, del Nivel de Aplicación utilizado, para la transmisión de correo electrónico a través de una conexión TCP/IP. Éste es, de hecho, el único protocolo utilizado para la transmisión de correo electrónico a través de Internet. Es un protocolo basado sobre texto, y relativamente simple, donde se especifica un destinatario, o mútiples destinatarios, en un mensaje que es transferido. A lo largo de los años han sido muchas las personas que han editado, o contribuido a las especificaciones de SMTP, entre las cuales están Jon Postel, Eric Allman, Dave Crocker, Ned Freed, Randall Gellens, John Klensin, y Keith Moore.
Para determinar el servidor SMTP para un dominio dado, se utilizan los registros MX (Mail Exchanger) en la Zona de Autoridad correspondiente al ese mismo dominio contestado por un Servidor DNS. Después de establecerse una conexión entre el remitente (el cliente), y el destinatario (el servidor), se inicia una sesión SMTP, ejemplificada a continuación.
Cliente: |
$ nc 127.0.0.1 25
|
Servidor: |
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 nombre.dominio ESMTP Sendmail 8.13.1/8.13.1; Sat, 18 Mar 2006 16:02:27 -0600
|
Cliente: |
HELO localhost.localdomain
|
Servidor: |
250 nombre.dominio Hello localhost.localdomain [127.0.0.1], pleased to meet you
|
Cliente: |
MAIL FROM:<fulano@localhost.localdomain>
|
Servidor: |
250 2.1.0 <fulano@localhost.localdomain>... Sender ok
|
Cliente: |
RCPT TO:<fulano@localhost.localdomain>
|
Servidor: |
250 2.1.5 <fulano@localhost.localdomain>... Recipient ok
|
Cliente: |
DATA
|
Servidor: |
354 Enter mail, end with "." on a line by itself
|
Cliente: |
Subject: Mensaje de prueba
From: fulano@localhost.localdomain
To: fulano@localhost.localdomain
Hola. Este es un mensaje de prueba.
Adios.
.
|
Servidor: |
250 2.0.0 k2IM2RjA003987 Message accepted for delivery
|
Cliente: |
QUIT
|
Servidor: |
221 2.0.0 nombre.dominio closing connection
|
Servidor: |
Connection closed by foreign host.
|
La descripción completa del protocolo original STMP está definida en el RFC 821, aunque el protocolo utilizado hoy en día, también conocido como ESMTP (Extended Simple Mail Transfer Protocol), está definido en el RFC 2821. SMTP trabaja sobre TCP en el puerto 25.
POP3 (Post Office Protocol version 3).
Es un protocolo estándar de Internet, del Nivel de Aplicación, que recupera el correo electrónico desde un servidor remoto a través de una conexión TCP/IP desde un cliente local. El diseño de POP3, y sus predecesores es permitir a los usuarios recuperar el correo electrónico, mientras están conectados en una red, y manipular los mensajes recuperados sin necesidad de permanecer conectados. A pesar de que muchos clientes de correo electrónico incluyen soporte para dejar el correo en el servidor, todos los clientes de POP3 recuperan todos los mensajes, y los almacenan como mensajes nuevos en la computadora, o anfitrión, utilizado por el usuario, eliminan los mensajes en el servidor, y terminan la conexión.
Después de establecerse una conexión entre el cliente, y el servidor, se inicia una sesión POP3, ejemplificada a continuación.
Cliente: |
$ nc 127.0.0.1 110
|
Servidor: |
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK dovecot ready.
|
Cliente: |
USER fulano
|
Servidor: |
+OK
|
Cliente: |
PASS clave de accceso
|
Servidor: |
+OK Logged in.
|
Cliente: |
STAT
|
Servidor: |
+OK 1 728
|
Cliente: |
LIST
|
Servidor: |
+OK 1 messages:
1 728
.
|
Cliente: |
RETR 1
|
Servidor: |
+OK 728 octets
Return-Path: <fulano@localhost.localdomain>
Received: from localhost.localdomain (localhost.localdomain [192.168.1.254])
by localhost.localdomain (8.13.1/8.13.1) with SMTP id k2IM2RjA003987
for <fulano@localhost.localdomain>; Sat, 18 Mar 2006 16:03:21 -0600
Date: Sat, 18 Mar 2006 16:02:27 -0600
Message-Id: <200603182203.k2IM2RjA003987@localhost.localdomain>
Subject: Mensaje de prueba
From: fulano@localhost.localdomain
To: fulano@localhost.localdomain
Status: O
Content-Length: 43
Lines: 2
X-UID: 202
X-Keywords:
Hola. Este es un mensaje de prueba.
Adios.
.
|
Cliente: |
QUIT
|
Servidor: |
+OK Logging out.
Connection closed by foreign host.
|
POP3 está definido en el RFC 1939. POP3 trabaja sobre TCP en el puerto 110.
IMAP (Internet Message Access Protocol).
Es un protocolo estándar de Internet, del Nivel de Aplicación, utilizado para acceder hacia el correo electrónico en un servidor remoto a través de una conexión TCP/IP desde un cliente local.
La versión más reciente de IMAP es la 4, revisión 1, y está definida en el RFC 3501. IMAP trabaja sobre TCP en el puerto 143.
Fue diseñado por Mark Crispin en 1986 como una alternativa más moderna que cubriera las deficiencias de POP3. Las características más importantes de IMAP incluyen:
| • |
Soporte para los modos de operación conectado (connected), y desconectado (disconnected), permitiendo a los clientes de correo electrónico permanezcan conectados el tiempo que su interfaz permanezca activa, descargando los mensajes conforme se necesite. |
| • |
A diferencia de POP3, permite accesos simultáneos desde múltiples clientes, y proporciona los mecanismos necesarios para éstos para que se detecten los cambios hechos por otro cliente de correo electrónico, conectado de manera concurrente, en el mismo buzón de correo. |
| • |
Permite a los clientes obtener individualmente cualquier parte MIME (acrónimo de Multi-Purpose Internet Mail Extensions, o Extensiones de correo de Internet de propósitos múltiples), así como también obtener porciones de las partes individuales, o bien los mensajes completos. |
| • |
A través de banderas definidas en el protocolo, vigilar la información de estado de los mensajes de correo electrónico que se mantengan en el servidor. Por ejemplo si el estado del mensaje es leído, no leído, respondido, o eliminado. |
| • |
Incluye soporte para múltiples buzones de correo electrónico que permite crear, renombrar, o eliminar, mensajes de correo electrónico presentados en el servidor dentro de carpetas, y mover estos mensajes entre distintas cuentas de correo electrónico. Esta característica también permite al servidor proporcionar acceso hacia los carpetas públicas, y las compartidas. |
| • |
Incluye soporte para realizar búsquedas del lado del servidor a través de mecanismos que permiten obtener resultados de acuerdo a varios criterios, permitiendo evitar que los clientes de correo electrónico tengan que descargar todos los mensajes desde el servidor. |
| • |
Las especificaciones del protocolo IMAP definen un mecanismo explícito mediante el cual puede ser mejorada su funcionalidad a través de extensiones. Un ejemplo es la extensión IMAP IDLE, la cual permite sincronizar ente el servidor, y el cliente a través de avisos.
|
Después de establecerse una conexión entre el cliente, y el servidor, se inicia una sesión IMAP, ejemplificada a continuación.
Cliente: |
$ nc 127.0.0.1 143
|
Servidor: |
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
* OK dovecot ready.
+OK dovecot ready.
|
Cliente: |
x LOGIN fulano clave de acceso
|
Servidor: |
x OK Logged in.
|
Cliente: |
x SELECT inbox
|
Servidor: |
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 1 EXISTS
* 0 RECENT
* OK [UNSEEN 1] First unseen.
* OK [UIDVALIDITY 1100569382] UIDs valid
* OK [UIDNEXT 203] Predicted next UID
x OK [READ-WRITE] Select completed.
|
Cliente: |
x FETCH 1 (flags body[header.fields (subject)])
|
Servidor: |
* 1 FETCH (FLAGS (\Seen) BODY[HEADER.FIELDS (SUBJECT)] {30}
Subject: Mensaje de prueba
)
x OK Fetch completed.
.
|
Cliente: |
x FETCH 1 (body[text])
|
Servidor: |
* 1 FETCH (BODY[TEXT] {45}
Hola. Este es un mensaje de prueba.
Adios.
)
x OK Fetch completed.
|
Cliente: |
x LOGOUT
|
Servidor: |
* BYE Logging out
x OK Logout completed.
Connection closed by foreign host.
|
Referencias.
http://www.ietf.org/rfc/rfc2222.txt
http://www.ietf.org/rfc/rfc821.txt
http://www.ietf.org/rfc/rfc2821.txt
http://www.ietf.org/rfc/rfc1939.txt
http://www.ietf.org/rfc/rfc3501.txt
Comentarios Recientes