stringtranslate.com

Protocolo de acceso a mensajes de Internet

En informática, el Protocolo de acceso a mensajes de Internet ( IMAP ) es un protocolo estándar de Internet utilizado por los clientes de correo electrónico para recuperar mensajes de correo electrónico de un servidor de correo a través de una conexión TCP/IP . [1] IMAP está definido en RFC  9051.

IMAP fue diseñado con el objetivo de permitir la gestión completa de una casilla de correo electrónico por parte de varios clientes de correo electrónico, por lo que los clientes generalmente dejan mensajes en el servidor hasta que el usuario los elimine explícitamente. Un servidor IMAP normalmente escucha en el puerto número 143. A IMAP sobre SSL/TLS ( IMAPS ) se le asigna el puerto número 993. [2] [3]

Prácticamente todos los clientes y servidores de correo electrónico modernos admiten IMAP, que junto con el anterior POP3 (Protocolo de oficina postal) son los dos protocolos estándar más frecuentes para la recuperación de correo electrónico. [4] Muchos proveedores de servicios de correo web como Gmail y Outlook.com también ofrecen soporte para IMAP y POP3.

Protocolos de correo electrónico

El Protocolo de acceso a mensajes de Internet es un protocolo de Internet de capa de aplicación que permite a un cliente de correo electrónico acceder al correo electrónico en un servidor de correo remoto . La versión actual está definida por RFC  9051. Un servidor IMAP normalmente escucha en el puerto conocido 143, mientras que IMAP sobre SSL/TLS (IMAPS) utiliza el 993. [2] [3]

Los mensajes de correo electrónico entrantes se envían a un servidor de correo electrónico que almacena los mensajes en la bandeja de entrada del destinatario. El usuario recupera los mensajes con un cliente de correo electrónico que utiliza uno de los numerosos protocolos de recuperación de correo electrónico disponibles. Si bien algunos clientes y servidores utilizan preferentemente protocolos propietarios específicos del proveedor , [5] casi todos admiten POP e IMAP para recuperar correo electrónico, lo que permite que muchos usuarios elijan libremente entre muchos clientes de correo electrónico, como Pegasus Mail o Mozilla Thunderbird , para acceder a estos servidores y permite que los clientes se utilicen con otros servidores .

Los clientes de correo electrónico que utilizan IMAP generalmente dejan los mensajes en el servidor hasta que el usuario los borra explícitamente. Esta y otras características del funcionamiento de IMAP permiten que varios clientes administren el mismo buzón. La mayoría de los clientes de correo electrónico admiten IMAP además del Protocolo de oficina postal (POP) para recuperar mensajes. [6] IMAP ofrece acceso al almacenamiento de correo. Los clientes pueden almacenar copias locales de los mensajes, pero se consideran una caché temporal.

Historia

IMAP fue diseñado por Mark Crispin en 1986 como un protocolo de buzón de acceso remoto, en contraste con el ampliamente utilizado POP, un protocolo para simplemente recuperar el contenido de un buzón.

Pasó por varias iteraciones antes de la actual VERSIÓN 4rev2 (IMAP4), como se detalla a continuación:

IMAP original

El Protocolo de acceso a correo provisional original se implementó como un cliente de Xerox Lisp Machine y un servidor TOPS-20 .

No existen copias de la especificación del protocolo provisional original ni de su software. [7] [8] Aunque algunos de sus comandos y respuestas eran similares a IMAP2, el protocolo provisional carecía de etiquetado de comando/respuesta y, por lo tanto, su sintaxis era incompatible con todas las demás versiones de IMAP.

IMAP2

El protocolo provisional fue rápidamente reemplazado por el Protocolo de acceso a correo interactivo (IMAP2), definido en RFC  1064 (en 1988) y posteriormente actualizado por RFC  1176 (en 1990). IMAP2 introdujo el etiquetado de comando/respuesta y fue la primera versión distribuida públicamente.

IMAP3

IMAP3 es una variante extremadamente rara de IMAP. [9] Se publicó como RFC  1203 en 1991. Fue escrito específicamente como una contrapropuesta a RFC  1176, que proponía modificaciones a IMAP2. [10] IMAP3 nunca fue aceptado por el mercado. [11] [12] El IESG reclasificó el RFC1203 "Interactive Mail Access Protocol – Version 3" como un protocolo histórico en 1993. El grupo de trabajo IMAP utilizó el RFC 1176 (IMAP2) en lugar del RFC 1203 (IMAP3) como punto de partida. [13] [14]

IMAP2bis

Con la llegada de MIME , IMAP2 se amplió para soportar estructuras de cuerpo MIME y añadir funcionalidad de gestión de buzones (crear, eliminar, renombrar, subir mensajes) que no existía en IMAP2. Esta revisión experimental se denominó IMAP2bis; su especificación nunca se publicó en forma no preliminar. El grupo de trabajo IMAP de la IETF publicó un borrador de Internet de IMAP2bis en octubre de 1993. Este borrador se basaba en las siguientes especificaciones anteriores: documento IMAP2bis.TXT no publicado, RFC  1176 y RFC  1064 (IMAP2). [15] El borrador IMAP2bis.TXT documentaba el estado de las extensiones de IMAP2 a diciembre de 1992. [16] Las primeras versiones de Pine se distribuyeron ampliamente con soporte para IMAP2bis [9] (Pine 4.00 y posteriores admiten IMAP4rev1).

IMAP4

A principios de los años 90, se formó un grupo de trabajo sobre IMAP en el IETF que se hizo cargo del diseño de IMAP2bis. El grupo de trabajo sobre IMAP decidió cambiar el nombre de IMAP2bis a IMAP4 para evitar confusiones.

Ventajas sobre el POP

Modos conectado y desconectado

Cuando se utiliza POP, los clientes suelen conectarse al servidor de correo electrónico brevemente, solo el tiempo necesario para descargar mensajes nuevos. Cuando se utiliza IMAP4, los clientes suelen permanecer conectados mientras la interfaz de usuario esté activa y descargan el contenido de los mensajes a pedido. Para los usuarios con muchos mensajes o mensajes de gran tamaño, este patrón de uso de IMAP4 puede dar como resultado tiempos de respuesta más rápidos.

Informe de cambios externos

Después de una autenticación exitosa, el protocolo POP proporciona una vista completamente estática del estado actual del buzón y no proporciona un mecanismo para mostrar los cambios externos en el estado durante la sesión. Por el contrario, el protocolo IMAP proporciona una vista dinámica y requiere que se detecten los cambios externos en el estado, incluidos los mensajes recién llegados, así como los cambios realizados en el buzón por otros clientes conectados simultáneamente, y que se envíen las respuestas apropiadas entre los comandos, así como durante un comando IDLE , como se describe en RFC  2177. Consulte también RFC  3501, sección 5.2, que cita específicamente "el acceso simultáneo al mismo buzón por parte de varios agentes".

Acceso a partes del mensaje MIME y búsqueda parcial

Por lo general, todo el correo electrónico de Internet se transmite en formato MIME , lo que permite que los mensajes tengan una estructura de árbol donde los nodos de hoja son cualquiera de una variedad de tipos de contenido de una sola parte y los nodos que no son de hoja son cualquiera de una variedad de tipos de contenido de varias partes. El protocolo IMAP4 permite a los clientes recuperar cualquiera de las partes MIME individuales por separado y también recuperar partes de cualquiera de las partes individuales o del mensaje completo. Estos mecanismos permiten a los clientes recuperar la parte de texto de un mensaje sin recuperar archivos adjuntos o transmitir contenido a medida que se recupera.

Información del estado del mensaje

Mediante el uso de indicadores definidos en el protocolo IMAP4, los clientes pueden realizar un seguimiento del estado de los mensajes: por ejemplo, si el mensaje ha sido leído, respondido o eliminado. Estos indicadores se almacenan en el servidor, de modo que distintos clientes que accedan al mismo buzón en distintos momentos pueden detectar cambios de estado realizados por otros clientes. POP no proporciona ningún mecanismo para que los clientes almacenen dicha información de estado en el servidor, de modo que si un único usuario accede a un buzón con dos clientes POP diferentes (en distintos momentos), la información de estado (por ejemplo, si se ha accedido a un mensaje) no se puede sincronizar entre los clientes. El protocolo IMAP4 admite indicadores de sistema predefinidos y palabras clave definidas por el cliente. Los indicadores de sistema indican información de estado, por ejemplo, si se ha leído un mensaje. Las palabras clave, que no son compatibles con todos los servidores IMAP, permiten asignar a los mensajes una o más etiquetas cuyo significado depende del cliente. Las palabras clave IMAP no deben confundirse con las etiquetas propietarias de los servicios de correo electrónico basados ​​en la Web , que a veces se traducen en carpetas IMAP por los servidores propietarios correspondientes.

Varios buzones de correo en el servidor

Los clientes IMAP4 pueden crear, cambiar el nombre y eliminar buzones de correo (que normalmente se presentan al usuario como carpetas) en el servidor, y copiar mensajes entre buzones de correo. La compatibilidad con varios buzones de correo también permite a los servidores proporcionar acceso a carpetas públicas y compartidas. La extensión de lista de control de acceso (ACL) de IMAP4 ( RFC  4314) se puede utilizar para regular los derechos de acceso.

Búsquedas del lado del servidor

IMAP4 ofrece un mecanismo para que un cliente solicite al servidor que busque mensajes que cumplan una serie de criterios. Este mecanismo evita que los clientes tengan que descargar todos los mensajes del buzón para realizar estas búsquedas.

Mecanismo de extensión incorporado

Como reflejo de la experiencia de los protocolos de Internet anteriores, IMAP4 define un mecanismo explícito mediante el cual puede extenderse. Se han propuesto muchas extensiones de IMAP4 al protocolo base y son de uso común. IMAP2bis no tenía un mecanismo de extensión y POP ahora tiene uno definido por RFC  2449.

Notificaciones push del servidor

IMAP IDLE ofrece una forma para que el servidor de correo notifique a los clientes conectados que se han producido cambios en un buzón de correo, por ejemplo, porque ha llegado un correo nuevo. POP no ofrece ninguna función comparable y los clientes de correo electrónico deben conectarse periódicamente al servidor POP para comprobar si hay correo nuevo.

Desventajas

Si bien IMAP soluciona muchas de las deficiencias de POP, esto inherentemente introduce una complejidad adicional. Gran parte de esta complejidad (por ejemplo, varios clientes que acceden al mismo buzón de correo al mismo tiempo) se compensa con soluciones alternativas del lado del servidor , como Maildir o backends de bases de datos.

La especificación IMAP ha sido criticada por no ser lo suficientemente estricta y permitir comportamientos que efectivamente anulan su utilidad. Por ejemplo, la especificación establece que cada mensaje almacenado en el servidor tiene un "identificador único" para permitir que los clientes identifiquen los mensajes que ya han visto entre sesiones. Sin embargo, la especificación también permite que estos identificadores únicos sean invalidados casi sin restricciones, lo que prácticamente frustra su propósito. [17]

Desde un punto de vista administrativo y de recursos, el protocolo IMAP puede considerarse una implementación temprana de la computación en la nube , ya que la intención y el propósito de IMAP es mantener la estructura de su buzón (contenido, estructura de carpetas, estado de mensajes individuales, etc.) en el servidor de correo, mientras que con POP, todo esto se mantiene en el dispositivo local del usuario. Por lo tanto, IMAP requiere muchos más recursos del lado del servidor, lo que genera un costo significativamente mayor por buzón.

A menos que los algoritmos de almacenamiento, indexación y búsqueda de correo en el servidor se implementen con cuidado, un cliente puede potencialmente consumir grandes cantidades de recursos del servidor al buscar en buzones de correo masivos.

Los clientes IMAP4 necesitan mantener una conexión TCP/IP con el servidor IMAP para recibir notificaciones de la llegada de correo nuevo. La notificación de la llegada de correo se realiza mediante señalización en banda , lo que contribuye en cierta medida a la complejidad del manejo del protocolo IMAP del lado del cliente. [18] Una propuesta privada, push IMAP , ampliaría IMAP para implementar el correo electrónico push enviando el mensaje completo en lugar de solo una notificación. Sin embargo, push IMAP no ha sido generalmente aceptado y el trabajo actual de IETF ha abordado el problema de otras maneras (consulte el Perfil Lemonade para obtener más información).

A diferencia de algunos protocolos propietarios que combinan operaciones de envío y recuperación, enviar un mensaje y guardar una copia en una carpeta del lado del servidor con un cliente IMAP de nivel básico requiere transmitir el contenido del mensaje dos veces, una a SMTP para su entrega y una segunda a IMAP para almacenarlo en una carpeta de correo enviado. Esto se soluciona mediante un conjunto de extensiones definidas por el Perfil Lemonade de IETF para dispositivos móviles: URLAUTH ( RFC  4467) y CATENATE ( RFC  4469) en IMAP, y BURL ( RFC  4468) en SMTP-SUBMISSION. Además de esto, Courier Mail Server ofrece un método no estándar de envío mediante IMAP copiando un mensaje saliente a una carpeta de bandeja de salida dedicada. [19]

Seguridad

Para proteger criptográficamente las conexiones IMAP entre el cliente y el servidor, se puede utilizar IMAPS en el puerto TCP 993, que utiliza SSL/TLS. [2] [3] A partir de enero de 2018, TLS es el mecanismo recomendado. [20]

Como alternativa, se puede utilizar STARTTLS para cifrar la conexión al conectarse al puerto 143 después de comunicarse inicialmente mediante texto sin formato .

Ejemplo de diálogo

Este es un ejemplo de conexión IMAP tomado de la sección 8 del RFC 3501:

C: <abrir conexión>S: * OK Servicio IMAP4rev1 ListoC: a001 inicio de sesión mrc secretoS: a001 OK INICIO DE SESIÓN completadoC:a002 seleccionar bandeja de entradaS: * 18 EXISTES: * BANDERAS (\Respondidas\Marcadas\Eliminadas\Vistas\Borrador)S: * 2 RECIENTESS: * OK [NO VISTO 17] El mensaje 17 es el primer mensaje no vistoS: * OK [UIDVALIDITY 3857529045] UID válidosS: a002 OK [LECTURA-ESCRITURA] SELECCIONAR completadoC: a003 buscar 12 completoS: * 12 FETCH (BANDERAS (\Seen) FECHA INTERNA "17-Jul-1996 02:44:25 -0700" RFC822.SIZE 4286 SOBRE ("miércoles, 17 de julio de 1996 02:23:25 -0700 (PDT)" "Resumen y actas de la reunión del grupo de trabajo IMAP4rev1" (("Terry Gray" NIL "gray" "cac.washington.edu")) (("Terry Gray" NIL "gray" "cac.washington.edu")) (("Terry Gray" NIL "gray" "cac.washington.edu")) ((NIL NIL "imap" "cac.washington.edu")) ((NIL NIL "minutos" "CNRI.Reston.VA.US") ("John Klensin" NIL "KLENSIN" "MIT.EDU")) NIL NIL "<[email protected]>") CUERPO ("TEXTO" "SENCILLO" ("JUEGO DE CARACTERES" "US-ASCII") NULO NULO "7BIT" 3028 92))S: a003 OK FETCH completadoC: a004 buscar 12 cuerpo[encabezado]S: * 12 FETCH (CUERPO[ENCABEZADO] {342}S:
S:
S:
S:
S: S
:
S:
S: Date: Wed, 17 Jul 1996 02:23:25 -0700 (PDT)From: Terry Gray <[email protected]>Subject: IMAP4rev1 WG mtg summary and minutesTo: [email protected]Cc: [email protected], John Klensin <[email protected]>Message-Id: <[email protected]>MIME-Version: 1.0Content-Type: TEXT/PLAIN; CHARSET=US-ASCIIS:S: )S: a004 OK FETCH completadoC a005 almacena 12 +banderas \eliminadoS: * 12 FETCH (BANDERAS (\Visto \Eliminado))S: a005 OK +BANDERAS completadoC: a006 cerrar sesiónS: * BYE El servidor IMAP4rev1 finaliza la conexiónS: a006 OK CERRAR SESIÓN completado

Véase también

Referencias

  1. ^ Dean, Tamara (2010). Guía de redes Network+. Delmar. pág. 519. ISBN 978-1-42390245-4Archivado del original el 5 de febrero de 2021. Consultado el 25 de diciembre de 2020 .
  2. ^ abc Blum, Richard (15 de diciembre de 2002). Seguridad de correo electrónico de código abierto. Sams Publishing. ISBN 9780672322372. Archivado del original el 5 de febrero de 2021 . Consultado el 25 de diciembre de 2020 – a través de Google Books.
  3. ^ abc Garfinkel, Simson; Spafford, Gene; Schwartz, Alan (15 de diciembre de 2003). Seguridad práctica en UNIX e Internet. "O'Reilly Media, Inc." ISBN 9780596003234. Archivado del original el 5 de febrero de 2021 . Consultado el 25 de diciembre de 2020 – a través de Google Books.
  4. ^ Komarinski, Mark (2000). Manual de administración de sistemas Red Hat Linux . Prentice Hall. pág. 179.
  5. ^ Por ejemplo, el cliente Outlook de Microsoft utiliza MAPI , un protocolo propietario de Microsoft , para comunicarse con un servidor Microsoft Exchange . El cliente Notes de IBM funciona de manera similar cuando se comunica con un servidor Domino .
  6. ^ Mullet, Diana (2000). Gestión de IMAP . O'Reilly . pág. 25. ISBN. 0-596-00012-X.
  7. ^ Crispin, Mark (13 de febrero de 2012). "Re: [imap5] Diseño de un nuevo protocolo de reemplazo para IMAP". imap5 (Lista de correo). [email protected]. Archivado desde el original el 24 de septiembre de 2015 . Consultado el 26 de noviembre de 2014 . El conocimiento del IMAP original (antes de IMAP2) existe principalmente en mi mente, ya que todas las especificaciones e implementaciones originales de IMAP fueron reemplazadas por IMAP2.
  8. ^ Registro de número de puerto de protocolo de transporte y nombre de servicio Archivado el 18 de abril de 2010 en Wayback Machine . Iana.org (12 de julio de 2013). Recuperado el 17 de julio de 2013.
  9. ^ ab "RFC 2061 – Compatibilidad de IMAP4 con IMAP2BIS". IETF. 1996. Archivado desde el original el 23 de junio de 2011. Consultado el 21 de agosto de 2010 .
  10. ^ "Interactive Mail Access Protocol – Version 3" (Protocolo de acceso a correo interactivo, versión 3). IETF. 1991. Archivado desde el original el 4 de marzo de 2010. Consultado el 21 de agosto de 2010 .
  11. ^ "IMAP2, IMAP2bis, IMAP3, IMAP4, IMAP4rev1 (Protocolos de correo LAN)". Archivado desde el original el 15 de junio de 2010. Consultado el 21 de agosto de 2010 .
  12. ^ "Descripción general, historia, versiones y estándares de IMAP". Archivado desde el original el 29 de noviembre de 2010. Consultado el 21 de agosto de 2010 .
  13. ^ "Acción de protocolo: Protocolo de acceso a correo interactivo — Versión 3 a histórica (archivo de correo IETF)". 1993. Archivado desde el original el 11 de agosto de 2012. Consultado el 21 de agosto de 2010 .
  14. ^ "Innosoft y los protocolos POP/IMAP? (archivo de correo)". 1993. Archivado desde el original el 15 de julio de 2011. Consultado el 21 de agosto de 2010 .
  15. ^ "Interactive Mail Access Protocol – Version 2bis (internet draft)" (Protocolo de acceso a correo interactivo, versión 2bis (borrador de Internet)). IETF. 1993. Archivado desde el original el 8 de octubre de 2012. Consultado el 21 de agosto de 2010 .
  16. ^ "IMAP2BIS – Extensiones del protocolo IMAP2 (borrador)". 1992. Archivado desde el original el 18 de julio de 2011. Consultado el 21 de agosto de 2010 .
  17. ^ "Implementación de IMAP en Sup, un cliente de correo electrónico escrito en Ruby". rubyforge.com. Archivado desde el original el 2007-12-12 . Consultado el 2011-02-22 .
  18. ^ "IMAP IDLE: El mejor enfoque para el correo electrónico 'push'". Isode.com. Archivado desde el original el 28 de febrero de 2009. Consultado el 30 de julio de 2009 .
  19. ^ "Courier-IMAP: Envío de correo a través de una conexión IMAP". Double Precision, Inc. Archivado desde el original el 27 de septiembre de 2013. Consultado el 24 de septiembre de 2013 .
  20. ^ RFC 8314.doi : 10.17487 /RFC8314 .

Lectura adicional

Enlaces externos