17
¿CÓMO FUNCIONA EL CORREO ELECTRÓNICO? Infinidad de personas usan el correo electrónico todos los días y sin embargo son muy pocos los que saben realmente cómo funciona. Parece increíble que el mundo de hoy dependa de una herramienta hasta cierto punto efímera, y sin embargo la tomamos como dada sin prestar mucha atención a cómo funciona. Tanto así que en muchos países el correo electrónico se puede usar como evidencia en un tribunal legal. Incluso usuarios “expertos” quienes configuran sus clientes de correo todos los días, ignoran que significa exactamente SMTP, POP e IMAP y de cómo se relacionan estos protocolos entre sí. ¿Qué tal si te dijéramos que esos tres protocolos no tienen realmente ninguna relación? ¿Te parecería increíble? Todos sabemos que para configurar tu “cliente” de correo tienes que saber algunos datos tales como el servidor SMTP, POP y/o IMAP. A primera vista pareciera que el correo es un sistema monolítico, e incluso punto a punto. Sin embargo, cada uno de estos componentes trabaja completamente independiente del otro, e incluso fueron creados en diferentes tiempos unos de los otros.

Cómo Funciona El Correo Electrónico

Embed Size (px)

DESCRIPTION

Funcionamiento de correo electronico

Citation preview

CMO FUNCIONA EL CORREO ELECTRNICO? Cmo funciona el Correo Electrnico? Infinidad de personas usan el correo electrnico todos los das y sin embargo son muy pocos los que saben realmente cmo funciona. Parece increble que el mundo de hoy dependa de una herramienta hasta cierto punto efmera, y sin embargo la tomamos como dada sin prestar mucha atencin a cmo funciona. Tanto as que en muchos pases el correo electrnico se puede usar como evidencia en un tribunal legal. Incluso usuarios expertos quienes configuran sus clientes de correo todos los das, ignoran que significa exactamente SMTP,POPeIMAPy de cmo se relacionan estos protocolos entre s. Qu tal si te dijramos que esos tres protocolos no tienen realmente ninguna relacin? Te parecera increble?

CMO FUNCIONA EL CORREO ELECTRNICO?Infinidad de personas usan el correo electrnico todos los das y sin embargo son muy pocos los que saben realmente cmo funciona. Parece increble que el mundo de hoy dependa de una herramienta hasta cierto punto efmera, y sin embargo la tomamos como dada sin prestar mucha atencin a cmo funciona. Tanto as que en muchos pases el correo electrnico se puede usar como evidencia en un tribunal legal. Incluso usuarios expertos quienes configuran sus clientes de correo todos los das, ignoran que significa exactamente SMTP,POPeIMAPy de cmo se relacionan estos protocolos entre s. Qu tal si te dijramos que esos tres protocolos no tienen realmente ninguna relacin? Te parecera increble? Todos sabemos que para configurar tu cliente de correo tienes que saber algunos datos tales como el servidor SMTP, POP y/o IMAP. A primera vista pareciera que el correo es un sistema monoltico, e incluso punto a punto. Sin embargo, cada uno de estos componentes trabaja completamente independiente del otro, e incluso fueron creados en diferentes tiempos unos de los otros.

La mayora de las personas piensan que el correo funciona as:

Solo algunos usuarios ms expertos saben al menos que hay un servidor de por medio y muchas veces piensan que el correo funciona as:

Quizs los ms expertos saben que cada usuario est asociado al menos a un servidor de correo y pueden ser distintos. Por ejemplo, un usuario que usa GMail y otro que usa Yahoo Mail, de seguro van a usar servidores diferentes:

Para los usuarios bastante ms conocedores la lamina anterior es, por supuesto, incorrecto. Esto se debe a que el agente de correos de cada usuario (MUA Mail User Agent en ingls) no se comunica directo con el servidor del otro usuario sino siempre a travs de su propio servidor (aunque esto tampoco es del todo preciso como veremos ms adelante). Un diagrama ms correcto sera el siguiente:

Funcionamiento General del Correo ElectrnicoLa lmina anterior es un poco ms precisa de cmo funciona realmente el envo y recepcin de correos electrnicos, pero an es una vista muy simplificada del asunto. Antes de entrar en detalle es importante repasar algunos conceptos importantes de sta ltima lmina. En primer lugar, podemos ver que a nivel de servidores, tanto el envo como la recepcin de correos, se hace exclusivamente con SMTP. Este es uno de los conceptos fundamentales que suele confundir a los administradores principiantes, y por supuesto, al usuario comn.En la cultura general, se piensa que SMTP es para el envo y POP e IMAP son para la recepcin, lo cual es medianamente cierto si uno se coloca estrictamente del punto de vista del usuario (o tcnicamente del MUA). Pero de hecho, SMTP se usa tanto para el envo como para la recepcin ya en realidad es una misma accin. Es decir, cuando un agente de correos (MUA) enva un correo mediante SMTP, una vez transmitido ya se encuentra recibido en el otro lado. Al igual que en el correo postal, documento fsicamente sale de un buzn y es enviado al otro, pasando por innumerables buzones intermedios. Esto es exactamente cmo funciona el correo electrnico y SMTP. Se puede pensar en SMTP como el correo nacional que lleva el correo desde una oficina postal a otra, pasando por innumerables medios de transporte (areo, martimo, terrestre, etc.). Este mecanismo de relevos (relay en ingls) es lo que hace que el correo electrnico sea tan robusto y confiable.

Un poco de historiaPor mucho tiempo solo existi SMTP y de hecho, el correo electrnico de hoy en da sigue funcionando exclusivamente con SMTP (sin POP ni IMAP). La gran confusin viene dada porque los usuarios piensan que sus buzones se encuentran en su agente de correo (MUA) y realmente no es as. Los buzones siempre se encuentran en los servidores. La razn de esto es histrica ya que en el correo electrnico originario (que deriva fundamentalmente del mundo UNIX) es depositado fsicamente en el buzn de cada usuario en un servidor, muy parecido a como el correo postal llega finalmente al buzn de tu casa. Los usuarios accedan directamente a su buzn para poder leer el correo y contestarlo. De hecho, los agentes de correo de esa poca (los cuales an existen y siguen siendo usados hoy por hoy) solo pueden operar con el correo directamente sobre el buzn local.

Con la popularizacin de las redes en la computacin de los aos 90 (conocida como la poca cliente/servidor) los usuario se fueron alejando del servidor a medida que las redes locales (LAN) y de rea amplia (WAN) fueron evolucionando hacia la Internet que todos conocemos hoy.Antes de POP y de IMAP (y de programas tales comoFetchmail), quizs la nica forma de acceder a un buzn de correo remoto era a travs de programas comoTelnetque permiten acceder, mediante un terminal virtual, a un servidor o estacin remota a travs de TCP/IP. Digamos que el buzn de correo original (solamente SMTP) se fue alejando gradualmente del usuario final de manera anloga a un apartado postal en el correo tradicional. El usuario se muda de un lugar a otro (PCs, Laptops, Ciber-Cafs, etc.), pero su correo llega a un mismo sitio: el buzn en el servidor.

Al igual que sucede con los apartados postales, el usuario debe desplazarse fsicamente a una ubicacin a otra para retirar su correo. Por ejemplo, si el usuario tiene tres apartados postales en 3 ciudades diferentes, debe ir fsicamente a cada ciudad a retirar su correo. En el caso del correo electrnico, esto se evita mediante el uso de POP e IMAP.POPA medida que el correo electrnico se hizo ms popular, ya se haca poco prctico tener que acceder a uno o ms buzones directamente, bien sea desplazndose fsicamente a cada mquina o a travs de programas como Telnet. Ms an, los usuarios comenzaron a tener varias cuentas de correo, generalmente una de trabajo o de estudios, y una o ms de uso personal.POP quiere decir Post Office Protocol que en castellano sera algo as como protocolo de la oficina de correos. Este protocolo permite retirar el correo del buzn remoto y traerlo a una bandeja entrada a la mquina local. Volviendo a la analoga del aparatado postal, sera como el cartero retirando el correo de la oficina de correos y entregndolo en una ubicacin arbitraria indicada por el cliente (de hecho hay apartados postales que ofrecen el servicio de re-envo peridico store-and-forward). De la misma forma, los agentes de correo (Outlook, Thunderbird, Pegasus, etc.) tambin fueron evolucionando para poder retirar correos desde varios buzones, en diferentes servidores, y comenzaron a crear el concepto de una bandeja de entrada comn que hoy en da usamos tan naturalmente en nuestros celulares.

IMAPIMAP es por un lado parecido a POP pero muy diferente a la vez. POP fue diseado para retirar (copiar, y generalmente suprimir) el contenido de un buzn remoto y traelo a un agente local. En el uso de POP, la copia local se suele considerar ms importante que la copia remota. En cambio, el diseo de IMAP es muy distinto enfocado ms bien en administrar directamente el buzn del servidor, sincronizando a la vez con el local. Para IMAP, la copia maestra e importante es la del servidor, y las copias locales son generalmente desechables. Muy contrario a lo que he escuchado muchas veces de expertos que piensan que IMAP es una versin mejorada de POP, o que es una versin de POP para manejar carpetasWebmailFinalmente tenemos el correo Web (Webmail) el cual se accede directamente a travs de una pgina Web en la Internet. Los Webmail no son ms que agentes de correo (MUA) construido con herramientas Web y que trabajan bien sea directamente sobre el buzn del servidor (e.g.NeoMail,OpenWebMail) o a travs de IMAP y SMPT (e.g.Horde,roundcube, SquirrelMail).

Vamos a resumir lo que hemos visto hasta ahora:

MUA: Mail User Agent. Se refiere al Agente de Usuario, es decir al software con el cual el usuario recibe y enva correos. Los MUA pueden ejecutar directo en el servidor tales comoMutt,Pine,Emacs Mail, etc., o ms comnmente se ejecutan en un computador remoto tales como MS Outlook,Mozilla Thunderbird, oEvolution.MTA: Message Transfer Agent. Se refiere al servidor de correo electrnico como tal. Casi todos los sistemas estilo Unix poseen un MTA base de manera obligatoria, es decir que generalmente en Unix existe al menos un MTA es parte del sistema base. En otras palabras, en Unix cada servidor y estacin de trabajo tambin es un MTA.SMTP: Simple Mail Transfer Protocol. Este protocolo es el que usan los servidores de correo para enviar correos entre s. Los MUA tambin usan SMTP para enviar correos.POP: Post Office Protocol. Este protocolo se usa para acceder a un buzn en un servidor remoto y copiar a la mquina local.IMAP: Internet Message Access Protocol. Este protocolo se usa para sincronizar buzones remotos a una copia local. A diferencia de POP, en IMAP se considera el buzn remoto como el maestro, y las copias locales se consideran temporales y/o desechables.

Esto por supuesto es una explicacin superficial y simplificada ya que hay muchos otros componentes intermedios. Por ejemplo, muchos MTA se ofrecen como relays de correo electrnico. Es decir, sirven como pasarelas para enrutar el correo a travs de la Internet. Por seguridad, los servidores destinatarios (finales de un dominio) generalmente no hacen relay para evitar que los usen como pasarelas para el correo masivo no solicitado popularmente conocido comoSpam.Componentes Open Source para Servidor de CorreoEn el mundo de OpenSource existen decenas de soluciones y combinaciones para implementar un servidor de correo electrnico de calidad industrial. De hecho, casi todos los sistemas de correo electrnico masivos usan alguna variante de Unix y herramientas OpenSource.

Funcionamiento DetalladoAhora que hemos revisado los conceptos bsicos del correo electrnico, veamos que sucede dentro del servidor de correo y de cmo se relacionan estas piezas entre s:

Esta grfica es ms precisa que las anteriores y se puede comprender perfectamente que SMTP es el nico y exclusivo protocolo del correo electrnico como tal. Se puede observar claramente que IMAP y POP son servicios complementarios (si se quiere hasta externos) y sirven para poder acceder al buzn de manera remota. Supongamos por un momento que el usuario de la figura estuviese trabajando directamente en el servidor, podra acceder directamente a su buzn all sin tener que usar IMAP o POP.Ntese que en este diagrama hemos agregado un elemento nuevo al diagrama: el MDA o Mail Delivery Agent en ingls. El MDA se encarga de depositar los mensajes que estn destinados para el dominio del servidor. El funcionamiento es ms o menos el siguiente:Pepe ([email protected]) enva un correo a Juan ([email protected]) a travs de su MUA.El MUA de Pepe usa SMTP para transmitir el mensaje a su MTA el cual, al detectar que no es un mensaje para el dominio local, lo enva a los servidores indicados por los registros MX de tango.com. No obstante, si el mensaje hubiese sido por ejemplo [email protected] el MTA local (de mango.com) lo hubiese delegado inmediatamente a su MDA, y ste ltimo se encargara de la entrega local (de depositarlo en el directorio correspondiente a ese usuario).Pasa un rato y Juan ([email protected]) le responde el correo a Pepe. El MTA de tango.com determina la direccin del MTA de mango.com (usando los registros MX del DNS) y se comunica por SMTP al mismo para hacerle entrega del mensaje destinado a un usuario en ese dominio. Este ltimo, se da cuenta que el mensaje es para un usuario local y se lo pasa a su MDA para la entrega final.Unos minutos ms tarde, el MUA de Pepe sincroniza los buzones a travs de IMAP e informa a Pepe que le ha llegado un correo nuevo.

En mi experiencia prefiero usar FreeBSD ya que me ofrece implementar sistemas de correo muy flexibles basados en Jaulas las cuales permiten ejecutar uno o ms MTA sin generar conflictos con el sistema base. Mi combinacin preferida para un MTA pblico hoy en da sera algo como:ServidorFreeBSD9 o superior usando jaulas conEzJaily sobreZFScomo sistema de ficheros enRAIDpor hardware o soft RAID con ZFS y discos SATA.Postfixcomo MTA, sin duda alguna. Para mi Postfix es el ms sencillo, prctico, flexible y robusto ya que es modular y no requiere de un nivel de experticia muy alto. En cambio, Sendmail quizs sigue siendo la solucin de ms alto calibre para MTA pero yo particularmente prefiero Postfix por su sencillez y mis MTA realmente no necesitan el peso pesado de Sendmail.Postfix permite,con mucha felicidad, la creacin de dominios virtuales y viene provisto de un VDA o Virtual Delivery Agent que es muy fcil de configurar. Lo importante de los dominios virtuales es que los usuarios de correo no son usuarios del sistema operativo, lo cual es muy ventajoso por infinidad de razones que escapan el alcance de ste artculo. La otra ventaja de los dominios virtuales es que se hace muy fcil administrar varios dominios con el mismo MTA! Algo parecido a los Virtual Hosts de Apache de mi artculo anterior pero para correo.

Finalmente, es recomendable el usoDovecotcomo servidor IMAP ya que es uno de los ms sencillos y completos que hay hoy en da. Con respecto a POP ya su uso no es muy popular y al menos que exista una razn de peso, digamos por ejemplo que el espacio en disco del servidor sea un problema, su utilizacin ya no es muy prctica ni recomendada.

Resumen

El correo electrnico es una herramienta que usamos todos los das y que el mundo entero usa muchas veces sin apreciar la cantidad de artefactos que la componen, ni la cantidad de saltos que puede dar un correo antes de llegar a su destino final. Su estructura aunque parezca compleja, realmente es muy sencilla y robusta y por eso es que el correo electrnico es tan confiable. Parece increble que todo esto ocurra de un lado del mundo al otro, en solo unos pocas mili-segundos.