jueves, agosto 07, 2014

Gestionar el buzón de Gmail con comandos IMAP (2 de 4)

Para esta segunda parte vamos a ver cómo se pueden modificar los mensajes, tanto los correos electrónicos recibimos como los mensajes almacenados, usando IMAP y el comando APPEND, con un ejemplo sencillo.

Modificación de mensajes con un cliente IMAP

Como ya he comentado anteriormente, una de las características principales de IMAP es la posibilidad de gestionar completamente los mensajes del servidor, pudiendo leer, escribir o modificar los mensajes en cualquier momento. Esto se puede hacer fácilmente con cualquier cliente IMAP, como por ejemplo Microsoft Outlook.

Figura 10: Modificación de un mensaje de correo en Gmail con Microsoft Outlook 

En este ejemplo se puede ver que yo me he enviado un mensaje que he recibido y tengo en mi bandeja de entrada, y lo puedo modificar. Cada modificación generará una nueva entrada para mensaje, que se convertirá en un mensaje multiparte, en el servidor IMAP de Gmail. Para ello solo debemos sincronizar la carpeta completa, y Microsoft Outlook ya se encargará de actualizar el contenido anñadiendo un nuevo mensaje utilizando el commando APPEND, que veremos un poco más adelante.

Figura 11: Sincronización y actualización del servidor de Gmail

El mensaje tendrá tantos mensajes enlazados como cambios se hayan ido produciendo, pero es difícil de detectar la fecha de la modificación en el servidor porque no aparece en el contenido del mensaje y queda enlazado a la fecha del primer mensaje. En este otro ejemplo se puede ver como es posible modificar tanto el contenido como el asunto, como los adjuntos del mensaje. Así se vería en la bandeja de Gmail en la web.

Figura 12: Este correo ha sido modificado en el cuerpo del mensaje y en los adjuntos

Además, una vez creado este segundo mensaje, se puede borrar el mensaje original y será difícil para nadie, si no viene firmado digitalmente, detectar que el mensaje ha sido modificado a posteriori. Es decir, que yo puedo modificar en mi servidor de Gmail todos los mensajes de correo electrónico que me enviéis. Al fin y al cabo son mis mensajes una vez que están en mi buzón.

Subir un mensaje de correo electrónico

Al igual que se pueden manipular los mensajes con clientes IMAP, se pueden añadir mensajes de correo electrónico que yo quiero guardar en mi servidor. Después de todo, como hemos visto, modificar un mensaje significa subir un nuevo mensaje como parte de otro anterior para que se cree uno final multipart. Esto se hace con el comando APPEND y su funcionamiento es bastante sencillo.

Primero debemos poner la etiqueta del comando. Luego invocamos APPEND sobre una folder y entre llaves el tamaño en bytes del mensaje. El servidor se quedará a la espera para recibir un mensaje que deberemos pasarle. Es importante que el formato del mensaje sea entendible, así que hay que poner la fecha (ojo con poner una fecha que no cuadre con la fecha del servidor), el formato del mensaje y el contenido.

Figura 13: Creación de un mensaje en mi carpeta INBOX con comando APPEND de MIME

Para esta prueba yo he decidido subir a mi bandeja de INBOX uno que venga desde Barack Obama, para lo que he creado el siguiente comando APPEND que he enviado a mi servidor IMAP de Gmail. Los detalles concretos de APPEND los tienes en la RFC 3501 que ya se ha citado anteriormente, pero donde está la parte más importante es en los estándares MIME, para que puedas construir correos correctamente. Estos están definidos en los RFC 2045, RFC 2046, RFC 2047, RFC 2048 y RFC 2049, que además han sido extendidos en múltiples otros.

Figura 13: Mis mensajes de Barack Obama en el INBOX (me subí varios)

Cuando se llegue al número total de bytes indicado en la invocación del comando APPEND el servidor contestará si ha podido subirse el mensaje con éxito o no. Si te da un mensaje de error entonces es que has cometido algún error a la hora de pasar el formato de mensaje. No desesperes, las primeras veces siempre te dejas algo, pero luego los subes como churros.

Figura 14: Mensaje de correo guardado en mi INBOX

Una vez terminado el comando, en nuestro servidor de Gmail quedará el mensaje de correo que nosotros hemos decidido guardar, tal y como puede verse en la imagen superior, como un correo electrónico recibido más.

Figura 15: El contenido del texto del mensaje original es el que hemos subido nosotros

Eso sí, si miramos el original del mensaje, no aparecerá ninguna referencia a que sea un mensaje de correo que haya llegado vía SMTP, que haya pasado filtros anti-spam, verificación SPF, DKIM o similar, pero como es un mensaje nuestro, podremos poner en él lo que queramos siempre que sea un  mensaje de tipo MIME correctamente formado. Y MIME da para muchas cosas.

Saludos Malignos!

**********************************************************************************************
Gestionar el buzón de Gmail con comandos IMAP (1 de 4)
Gestionar el buzón de Gmail con comandos IMAP (2 de 4)
- Gestionar el buzón de Gmail con comandos IMAP (3 de 4)
- Gestionar el buzón de Gmail con comandos IMAP (4 de 4)
**********************************************************************************************

3 comentarios:

Diego Perez Urbina dijo...

Venia a decirte que en algunas de las capturas habias olvidado tapar tu direccion de email, pero veo que ya lo has actualizado.

Saludos!

Imsel dijo...

Uso a diario Gmail y nunca había probado de gestionarlo con comandos IMAP, me leere los siguientes dos artículos!
Buen aporte

Jmorras dijo...

Aun recuerdo cuando los servidores de correo estaban TODOS sin "proteger"... les podíamos inyectar cualquier correo.

Hace unos años eras abanderado de una campaña para "securizar" los servidores... ¿como acabó?

Salut

Entrada destacada

Infraestructuras Críticas y Sistemas Industriales: Auditorías de Seguridad y Fortificación de @0xWord

Desde hoy está disponible a la venta un nuevo libro de 0xWord centrado en la seguridad de los Sistemas Industriales y las Infraestructuras...

Entradas populares