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 por RFC 9051 .
IMAP se diseñó con el objetivo de permitir la gestión completa de un buzón de correo electrónico por parte de múltiples clientes de correo electrónico; por lo tanto, los clientes generalmente dejan los mensajes en el servidor hasta que el usuario los elimina 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 de Correos) son los dos protocolos estándar más comunes para la recuperación de correo electrónico. [ 4 ] Muchos proveedores de servicios de correo web, como Gmail y Outlook.com, también admiten tanto IMAP como POP3.
protocolos de correo electrónico
El Protocolo de Acceso a Mensajes de Internet (IMAP) 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 la RFC 9051. Un servidor IMAP normalmente escucha en el puerto 143, mientras que IMAP sobre SSL/TLS (IMAPS) utiliza el puerto 993. [ 2 ] [ 3 ]
Los mensajes de correo electrónico entrantes se envían a un servidor de correo electrónico que los almacena en la bandeja de entrada del destinatario. El usuario recupera los mensajes con un cliente de correo electrónico que utiliza uno de varios protocolos de recuperación de correo electrónico. Si bien algunos clientes y servidores utilizan preferentemente protocolos propietarios específicos del proveedor , [ 5 ] casi todos admiten POP e IMAP para recuperar el correo electrónico, lo que permite elegir 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 elimina 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 de Correo (POP), para recuperar mensajes. [ 6 ] IMAP ofrece acceso al almacenamiento de correo. Los clientes pueden almacenar copias locales de los mensajes, pero estas se consideran una caché temporal.
Historia
IMAP fue diseñado por Mark Crispin en 1986 como un protocolo de buzón de correo de acceso remoto, a diferencia del ampliamente utilizado POP, un protocolo para simplemente recuperar el contenido de un buzón de correo.
Pasó por varias iteraciones antes de la VERSIÓN 4rev2 (IMAP4) actual, como se detalla a continuación:
IMAP original
El protocolo original de acceso a correo provisional (Interim Mail Access Protocol) se implementó como un cliente 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 comandos/respuestas 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 Interactivo de Acceso al Correo (IMAP2), definido en el RFC 1064 (en 1988) y posteriormente actualizado por el RFC 1176 (en 1990). IMAP2 introdujo el etiquetado de comandos y respuestas y fue la primera versión distribuida públicamente.
IMAP3
IMAP3 es una variante extremadamente rara de IMAP. [ 9 ] Fue publicada como RFC 1203 en 1991. Fue escrita específicamente como una contrapropuesta a RFC 1176 , que a su vez proponía modificaciones a IMAP2. [ 10 ] IMAP3 nunca fue aceptada por el mercado. [ 11 ] [ 12 ] El IESG reclasificó RFC1203 "Protocolo de acceso a correo interactivo - Versión 3" como un protocolo histórico en 1993. El Grupo de Trabajo de IMAP utilizó RFC 1176 (IMAP2) en lugar de RFC 1203 (IMAP3) como su punto de partida. [ 13 ] [ 14 ]
IMAP2bis
Con la llegada de MIME , IMAP2 se extendió para admitir estructuras de cuerpo MIME y agregar funcionalidad de administración de buzones (crear, eliminar, renombrar, cargar mensajes) que no estaba presente en IMAP2. Esta revisión experimental se llamó IMAP2bis; su especificación nunca se publicó en forma no preliminar. Un borrador de Internet de IMAP2bis fue publicado por el Grupo de Trabajo IMAP de la IETF en octubre de 1993. Este borrador se basó en las siguientes especificaciones anteriores: documento IMAP2bis.TXT no publicado , RFC 1176 y RFC 1064 (IMAP2). [ 15 ] El borrador IMAP2bis.TXT documentó el estado de las extensiones a 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
Un grupo de trabajo sobre IMAP, formado en el IETF a principios de la década de 1990, asumió la responsabilidad del diseño de IMAP2bis. El grupo de trabajo decidió cambiar el nombre de IMAP2bis a IMAP4 para evitar confusiones.
Ventajas sobre el POP
Modos conectado y desconectado
Al usar POP, los clientes suelen conectarse al servidor de correo electrónico brevemente, solo el tiempo necesario para descargar los mensajes nuevos. Al usar IMAP4, los clientes suelen permanecer conectados mientras la interfaz de usuario esté activa y descargan el contenido de los mensajes bajo demanda. Para los usuarios con muchos mensajes o mensajes de gran tamaño, este patrón de uso de IMAP4 puede resultar en tiempos de respuesta más rápidos.
Informe de cambios externos
Tras una autenticación exitosa, el protocolo POP proporciona una vista completamente estática del estado actual del buzón y no ofrece ningún mecanismo para mostrar cambios externos de estado durante la sesión (el cliente POP debe reconectarse y autenticarse nuevamente para obtener una vista actualizada). En cambio, el protocolo IMAP proporciona una vista dinámica y requiere que se detecten los cambios externos de 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 comandos y durante un comando IDLE , como se describe en la RFC 2177. Véase también la sección 5.2 de la RFC 3501 , que cita específicamente el "acceso simultáneo al mismo buzón por múltiples agentes".
Acceso a partes de mensajes MIME y recuperación 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 hoja son de diversos tipos de contenido de una sola parte y los nodos intermedios son de diversos tipos de contenido de varias partes. El protocolo IMAP4 permite a los clientes recuperar cualquiera de las partes MIME individuales por separado, así como recuperar porciones de partes individuales o el mensaje completo. Estos mecanismos permiten a los clientes recuperar la parte de texto de un mensaje sin recuperar los archivos adjuntos o transmitir el contenido a medida que se descarga.
Información sobre el 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 diferentes clientes que acceden al mismo buzón en distintos momentos pueden detectar los 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, por lo que si un mismo usuario accede a un buzón con dos clientes POP diferentes (en distintos momentos), la información de estado —como si se ha accedido a un mensaje— no se puede sincronizar entre los clientes. El protocolo IMAP4 admite tanto indicadores del sistema predefinidos como palabras clave definidas por el cliente. Los indicadores del sistema indican información de estado, como 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 son traducidas a carpetas IMAP por los servidores propietarios correspondientes.
Múltiples buzones de correo en el servidor
Los clientes IMAP4 pueden crear, renombrar y eliminar buzones (generalmente presentados al usuario como carpetas) en el servidor, así como copiar mensajes entre buzones. La compatibilidad con múltiples buzones también permite a los servidores proporcionar acceso a carpetas compartidas y públicas. La extensión de la lista de control de acceso (ACL) de IMAP4 ( RFC 4314 ) puede utilizarse para regular los derechos de acceso.
Búsquedas del lado del servidor
IMAP4 proporciona un mecanismo para que un cliente solicite al servidor que busque mensajes que cumplan con diversos 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 protocolos de Internet anteriores, IMAP4 define un mecanismo explícito para su extensión. Se han propuesto y se utilizan comúnmente numerosas extensiones de IMAP4 al protocolo base. IMAP2bis no contaba con un mecanismo de extensión, mientras que POP ahora sí dispone de uno definido por la RFC 2449 .
notificaciones push del servidor
IMAP IDLE permite que el servidor de correo notifique a los clientes conectados que se han producido cambios en un buzón, por ejemplo, porque ha llegado un nuevo correo. POP no ofrece una función similar, y los clientes de correo electrónico deben conectarse periódicamente al servidor POP para comprobar si hay correo nuevo.
Desventajas
Si bien IMAP corrige muchas de las deficiencias de POP, esto introduce inherentemente una complejidad adicional. Gran parte de esta complejidad (por ejemplo, que varios clientes accedan al mismo buzón simultáneamente) se compensa con soluciones alternativas del lado del servidor, como Maildir o bases de datos.
La especificación IMAP ha sido criticada por ser insuficientemente estricta y permitir comportamientos que, en la práctica, anulan su utilidad. Por ejemplo, la especificación establece que cada mensaje almacenado en el servidor tiene un "identificador único" para que los clientes puedan identificar los mensajes que ya han visto entre sesiones. Sin embargo, la especificación también permite que estos identificadores únicos se invaliden prácticamente sin restricciones, lo que anula su propósito. [ 17 ]
IMAP mantiene la estructura del buzón (contenido, estructura de carpetas, estado de cada mensaje, etc.) en el servidor de correo, mientras que POP la mantiene en el dispositivo local del usuario. Por lo tanto, IMAP requiere muchos más recursos del servidor, lo que genera un costo significativamente mayor por buzón. [ 18 ] Los clientes pueden consumir grandes cantidades de recursos del servidor al buscar en buzones masivos si los algoritmos de almacenamiento, indexación y búsqueda del servidor no están implementados cuidadosamente.
Los clientes IMAP4 necesitan mantener una conexión TCP/IP con el servidor IMAP para recibir notificaciones de la llegada de nuevos correos. La notificación de la llegada de correo se realiza mediante señalización en banda , lo que contribuye a la complejidad del manejo del protocolo IMAP en el lado del cliente. [ 19 ] Una propuesta privada, push IMAP , extenderí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 la 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 servidor con un cliente IMAP básico requiere transmitir el contenido del mensaje dos veces: una vez a SMTP para su entrega y una segunda vez a IMAP para almacenarlo en una carpeta de correo enviado. Esto se soluciona mediante un conjunto de extensiones definidas por el perfil Lemonade de la IETF para dispositivos móviles: URLAUTH ( RFC 4467 ) y CATENATE ( RFC 4469 ) en IMAP, y BURL ( RFC 4468 ) en SMTP-SUBMISSION. Además, 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. [ 20 ]
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. [ 21 ]
Como alternativa, se puede utilizar STARTTLS para cifrar la conexión al conectarse al puerto 143 después de comunicarse inicialmente en texto plano .
Ejemplo de diálogo
Este es un ejemplo de conexión IMAP tomado de la sección 8 de la RFC 3501 :
C: <abrir conexión> S: * OK IMAP4rev1 Servicio listo C: a001 inicio de sesión mrc secreto S: a001 OK INICIO DE SESIÓN completado C: a002 seleccionar bandeja de entrada S: * 18 EXISTE S: * INDICADORES (\Respondido \Marcado \Eliminado \Visto \Borrador) S: * 2 RECIENTES S: * OK [NO VISTO 17] El mensaje 17 es el primer mensaje no visto. S: * OK [UIDVALIDITY 3857529045] UID válidos S: a002 OK [LECTURA-ESCRITURA] Selección completada C: a003 obtener 12 completo S: * 12 FETCH (BANDERAS (\Visto) FECHA INTERNA "17-jul-1996 02:44:25 -0700" RFC822.SIZE 4286 SOBRE ("Mié, 17 Jul 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 "<B27397-0100000@cac.washington.edu>") CUERPO ("TEXTO" "PLAIN" ("CHARSET" "US-ASCII") NULO NULO "7BIT" 3028 92)) S: a003 OK FETCH completado C: a004 obtener 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:TerryGray<gray@cac.washington.edu>Subject:IMAP4rev1WGmtgsummaryandminutesTo:imap@cac.washington.eduCc:minutes@CNRI.Reston.VA.US,JohnKlensin<KLENSIN@MIT.EDU>Message-Id:<B27397-0100000@cac.washington.edu>MIME-Version:1.0Content-Type:TEXT/PLAIN;CHARSET=US-ASCII S: S: ) S: a004 OK FETCH completado C: a005 tienda 12 +banderas \eliminado S: * 12 FETCH (FLAGS (\Visto \Eliminado)) S: a005 OK +BANDERA completada C: a006 cerrar sesión S: * BYE El servidor IMAP4rev1 está terminando la conexión S: a006 OK CIERRE DE SESIÓN completadoVéase también
- Lista de software de servidor de correo
- Comparación de clientes de correo electrónico
- Comparación de servidores de correo
- IMAP INACTIVO
- Protocolo de metadatos JSON (JMAP)
- Protocolo de la Oficina de Correos (POP)
- Push-IMAP
- Protocolo simple de acceso al correo
- Protocolo simple de transferencia de correo
- Correo web
Referencias
- ↑ 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 .
- 1 2 3 Blum, Richard (15 de diciembre de 2002). Seguridad de correo electrónico de código abierto . Sams Publishing. ISBN 9780672322372Archivado del original el 5 de febrero de 2021. Consultado el 25 de diciembre de 2020 a través de Google Books.
- 1 2 3 Garfinkel, Simson; Spafford, Gene; Schwartz, Alan (15 de diciembre de 2003). Seguridad práctica en UNIX e Internet . O'Reilly Media, Inc. ISBN 9780596003234Archivado del original el 5 de febrero de 2021. Consultado el 25 de diciembre de 2020 a través de Google Books.
- ↑ Komarinski, Mark (2000). Manual de administración de sistemas Red Hat Linux . Prentice Hall. pág. 179.
- ↑ Por ejemplo, el cliente Outlook de Microsoft utiliza MAPI , unprotocolo propietario de Microsoft , para comunicarse con un servidor Microsoft Exchange . El cliente Notes de IBM funciona de manera similar al comunicarse con unservidor Domino .
- ↑ Mullet, Diana (2000). Managing IMAP . O'Reilly . p. 25. ISBN 0-596-00012-X.
- ↑ Crispin, Mark (13 de febrero de 2012). "Re: [ imap5 ] Diseño de un nuevo protocolo de reemplazo para IMAP" . imap5 (Lista de correo). alpine.OSX.2.00.1202131243200.38441@hsinghsing.panda.com. Archivado del original el 24 de septiembre de 2015. Recuperado 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.
- ↑ Registro de nombres de servicio y números de puerto de protocolo de transporte archivado el 18 de abril de 2010 en Wayback Machine . Iana.org (12 de julio de 2013). Consultado el 17 de julio de 2013.
- 1 2 "RFC 2061 – Compatibilidad de IMAP4 con IMAP2BIS" . IETF. 1996. Archivado del original el 23 de junio de 2011. Recuperado el 21 de agosto de 2010 .
- ↑ "Protocolo interactivo de acceso al correo electrónico – Versión 3" . IETF. 1991. Archivado del original el 4 de marzo de 2010. Consultado el 21 de agosto de 2010 .
- ↑ "IMAP2, IMAP2bis, IMAP3, IMAP4, IMAP4rev1 (protocolos de correo LAN)" . Archivado del original el 15 de junio de 2010. Consultado el 21 de agosto de 2010 .
- ↑ "Descripción general, historia, versiones y estándares de IMAP" . Archivado del original el 29/11/2010 . Consultado el 21/08/2010 .
- ↑ "Protocolo de acción: Protocolo interactivo de acceso al correo — Versión 3 a histórico (archivo de correo de la IETF)" . 1993. Archivado del original el 11 de agosto de 2012. Consultado el 21 de agosto de 2010 .
- ↑ "¿Innosoft y los protocolos POP/IMAP? (archivo de correo)" . 1993. Archivado del original el 15 de julio de 2011. Recuperado el 21 de agosto de 2010 .
- ↑ "Protocolo interactivo de acceso al correo electrónico – Versión 2bis (borrador de Internet)" . IETF. 1993. Archivado del original el 8 de octubre de 2012. Consultado el 21 de agosto de 2010 .
- ↑ "IMAP2BIS – Extensiones al protocolo IMAP2 (borrador)" . 1992. Archivado del original el 18 de julio de 2011. Consultado el 21 de agosto de 2010 .
- ↑ "Implementación de IMAP en Sup, un cliente de correo electrónico escrito en Ruby" . rubyforge.com. Archivado del original el 12 de diciembre de 2007. Consultado el 22 de febrero de 2011 .
- ↑ "IMAP vs. POP3: Ventajas e inconvenientes para los propietarios de negocios" . Mailchimp . 23 de agosto de 2023. Consultado el 16 de julio de 2025 .
- ↑ "IMAP IDLE: El mejor enfoque para el correo electrónico 'push'" . Isode.com. Archivado del original el 28 de febrero de 2009. Consultado el 30 de julio de 2009 .
- ↑ "Courier-IMAP: Envío de correo a través de una conexión IMAP" . Double Precision, Inc. Archivado del original el 27 de septiembre de 2013. Consultado el 24 de septiembre de 2013 .
- ↑ RFC 8314 . IETF . doi : 10.17487/RFC8314 .
Lecturas adicionales
- Crispin, Mark (1988–2016). "Diez mandamientos para escribir un cliente IMAP" . Universidad de Washington . Archivado del original el 29 de agosto de 2016. Consultado el 2 de noviembre de 2018 .
- Heinlein, P; Hartleben, P (2008). El libro de IMAP: Construyendo un servidor de correo con Courier y Cyrus . No Starch Press. ISBN 978-1-59327-177-0.
- Hughes, L (1998). Protocolos, estándares e implementación del correo electrónico en Internet . Artech House Publishers. ISBN 0-89006-939-5.
- Johnson, K (2000). Protocolos de correo electrónico de Internet: Guía para desarrolladores . Addison-Wesley Professional. ISBN 0-201-43288-9.
- Loshin, P (1999). "Estándares esenciales de correo electrónico: RFC y protocolos aplicados a la práctica". Programación de correo electrónico por Internet . O'Reilly. ISBN 1-56592-479-7.
Enlaces externos
- protocolos de correo de Internet