El nacimiento del correo electrónico (email) ocurrió a principios de los años 60. El buzón era un archivo en el directorio principal de un usuario que sólo podía ser accesado por ese usuario. Las aplicaciones de correo primitivas anexaban nuevos mensajes de texto a la parte inferior de un archivo, y el usuario tenía que buscar a lo largo del archivo en constante crecimiento para encontrar un mensaje particular. Este sistema sólo era capaz de enviar mensajes a usuarios del mismo sistema.
La primera transferencia verdadera de correo electrónico en la red se llevó a cabo en 1971 cuando un ingeniero de computación llamado Ray Tomlinson envión un mensaje de prueba entre dos máquinas a través de ARPANET — el precursor de Internet. La comunicación a través de correo electrónico rápidamente se volvió muy popular, pasando a formar el 75 por ciento del tráfico de ARPANET en menos de dos años.
Hoy día, los sistemas de correo electrónico basados en protocolos de red han evolucionado en uno de los servicios más usados de la Internet. Red Hat Linux ofrece muchas aplicaciones avanzadas para servir y accesar correo electrónico.
En este capítulo se analizan los protocolos de correo electrónico modernos conocidos actualmente, así como varios programas diseñados para realizar distintos tipos de tareas relacionadas con el correo electrónico.
Hoy día, el correo electrónico es entregado usando una arquitectura cliente/servidor. Un mensaje de correo electrónico es creado usando un programa de correo cliente. Este programa luego envía el mensaje a un servidor. El servidor luego lo redirige al recipiente de correo del servidor, donde el mensaje es luego suministrado al recipiente de correo del cliente.
Para habilitar todo este proceso, una variedad de protocolos de red estándar permiten que diferentes máquinas, a menudo ejecutando sistemas operativos diferentes y usando diferentes programas de correo, envíen y reciban correo electrónico o email.
Los protocolos que se indican a continuación son los que más se utilizan para transferir correo electrónico de un sistema a otro.
La entrega de correo desde una aplicación cliente a un servidor, y desde un servidor origen al servidor destino es manejada por el Simple Mail Transfer Protocol (SMTP) .
El objetivo principal del Protocolo simple de transferencia de correo, SMTP, es transferir correo entre servidores de correo. Sin embargo es crítico para los clientes de correo también. Para poder enviar correo, el cliente envia el mensaje a un servidor de correo saliente, el cual luego contacta al servidor de correo de destino para la entrega. Por esta razón, es necesario especificar un servidor SMTP cuando se esté configurando un cliente de correo.
Bajo Red Hat Linux, un usuario puede configurar un servidor SMTP en la máquina local para manejar la entrega de correo. Sin embargo, también es posible configurar servidores remotos SMTP para el correo saliente.
Un punto importante sobre el protocolo SMTP es que no requiere autenticación. Esto permite que cualquiera en la Internet puede enviar correo a cualquiera otra personal o a grandes grupos de personal. Esta característica de SMTP es lo que hace posible el correo basura o spam. Los servidores SMTP modernos intentan minimizar este comportamiento permitiendo que sólo los hosts conocidos accedan al servidor SMTP. Los servidores que no ponen tales restricciones son llamados servidores open relay.
Red Hat Linux utiliza Sendmail (/usr/sbin/sendmail) como su programa SMTP por defecto. Sin embargo, también está disponible una aplicación más simple de servidor de correo llamada Postfix (/usr/sbin/postfix).
Hay dos protocolos principales usados por las aplicaciones de correo cliente para recuperar correo desde los servidores de correo: el Post Office Protocol (POP) y el Internet Message Access Protocol (IMAP).
A diferencia de SMTP, estos protocolos requieren autenticación de los clientes usando un nombre de usuario y una contraseña. Por defecto, las contraseñas para ambos protocolos son pasadas a través de la red de forma encriptada.
El servidor por defecto POP bajo Red Hat Linux es /usr/sbin/ipop3d y es proporcionado por el paquete imap. Cuando utilice el protocolo POP, los mensajes de correo son descargados a través de las aplicaciones de correo cliente. Por defecto, la mayoría de los clientes de correo POP son configurados automáticamente para borrar el mensaje en el servidor de correo después que éste ha sido transferido exitósamente, sin embargo esta configuración se puede cambiar.
POP es completamente compatible con estándares importantes de mensajería de Internet, tales como Multipurpose Internet Mail Extensions (MIME), el cual permite los anexos de correo.
POP funciona mejor para usuarios que tienen un sistema en el cual leer correo. También funciona bien para usuarios que no tienen una conexión permanente a la Internet o a la red conteniendo el servidor de correo. Desafortunadamente para aquellos con conexiones lentas, POP requiere programas cliente que luego de la autenticación, descarguen el contenido completo de cada mensaje. Esto puede tomar un buen tiempo si algún mensaje tiene anexos grandes.
La versión más reciente del protocolo estándar POP es POP3.
Existen sin embargo, una variedad de variantes del protocolo POP menos usadas:
APOP — POP3 con autenticación MDS. En este protocolo, el cliente de correo envía un hash codificado de la contraseña al servidor en lugar de enviar una contraseña encriptada.
KPOP — POP3 con autenticación Kerberos. Consulte el Capítulo 17 para ver más información.
RPOP — POP3 con autenticación RPOP, que utiliza un identificador de usuario similar a una contraseña para autenticar las peticiones POP. No obstante, este ID no esta encriptado por tanto RPOP no es más seguro que el estándar POP.
Para añadir seguridad, es posible utilizar la encriptación Secure Socket Layer (SSL) para la autenticación del cliente y las sesiones de transferencias de datos. Esto se puede activar usando el servicio ipop3s o mediante el uso del programa /usr/sbin/stunnel. Refiérase a Sección 11.5.1 para más información.
El servidor por defecto IMAP bajo Red Hat Linux es /usr/sbin/imapd y es proporcionado por el paquete imap. Cuando utilice un servidor de correo IMAP, los mensajes de correo se mantienen en el servidor donde los usuarios pueden leer y borrarlos. IMAP también permite a las aplicaciones cliente crear, renombrar o borrar directorios en el servidor para organizar y almacenar correo.
IMAP lo utilizan principalmente los usuarios que accesan su correo desde varias máquinas. El protocolo es conveniente también para usuarios que se estén conectando al servidor de correo a través de una conexión lenta, porque sólo la información de la cabecera del correo es descargada para los mensajes, hasta que son abiertos, ahorrando de esta forma ancho de banda. El usuario también tiene la habilidad de eliminar mensajes sin verlos o descargarlos.
Por conveniencia, las aplicaciones cliente IMAP son capaces de hacer caché de los mensajes localmente, para que el usuario pueda hojear los mensajes previamente leídos cuando no se esté conectado directamente al servidor IMAP.
IMAP, como POP, es completamente compatible con estándares de mensajería de Internet, tales como MIME, que permite los anexos de correo.
Para seguridad adicional, es posible utilizar la encriptación SSL para la autenticación de clientes y para las sesiones de transferencia de datos. Esto se puede activar usando el servicio imaps, o mediante el uso del programa /usr/sbin/stunnel. Refiérase a Sección 11.5.1 para más información.
También están disponibles otros clientes y servidores de correo IMAP gratuítos así como también comerciales, muchos de los cuales extienden el protocolo IMAP y proporcionan funcionalidades adicionales. Una lista completa sobre esto se puede encontrar en http://www.imap.org/products/longlist.htm.