El correo es la única integración que todas las organizaciones tienen de antemano. Los proveedores envían facturas, los formularios entregan solicitudes y las máquinas emiten alertas. La ingesta de correo trata esos mensajes como una interfaz y no como una tarea manual: un script se conecta a un buzón, lee lo que ha llegado y actúa sobre ello.
Es un patrón antiguo e infravalorado, porque la alternativa, pedir a todos los interlocutores que adopten tu API, normalmente no existe. Esta guía explica para qué sirve, cómo construir un proceso resistente y en qué situaciones un webhook es realmente la mejor opción.
Para qué sirve la ingesta de correo por IMAP
La ingesta de correo resulta útil siempre que el remitente no quiera o no pueda integrarse directamente con tu sistema.
Documentos de proveedores y socios. Facturas, pedidos de compra, albaranes y extractos llegan como adjuntos desde organizaciones que nunca desarrollarán una integración específica. Un script que los archive por remitente y referencia puede ser toda la integración necesaria.
Alertas de equipos. Muchos dispositivos solo saben enviar mensajes: sistemas de copia de seguridad y supervisión, y maquinaria industrial antigua. La ingesta mediante IMAP proporciona un único punto de recogida para todos ellos.
Formularios y respuestas. Sirve para cualquier sistema que envíe mensajes con una estructura conocida, incluidas las notificaciones de rebote y las respuestas de ausencia que quieras procesar.
Aprobaciones mediante respuesta. Que una persona conteste «sí» puede constituir un paso de un flujo de trabajo. Leer esa respuesta mediante un programa suele ser más sencillo que crear una interfaz en la que nadie quiere iniciar sesión.
Cómo configurarla para que sea fiable
La mecánica de la ingesta de correo es sencilla. Su resistencia depende de unas pocas decisiones.
Dedícale su propio buzón. No utilices una carpeta dentro de la cuenta de alguien ni un buzón que también consulte una persona. Con una dirección exclusiva, nadie puede romper las suposiciones del script al ordenar mensajes. Aquí no añade coste porque los buzones no se cobran por usuario.
Utiliza credenciales limitadas a esa tarea. No emplees el acceso de una persona. Si las credenciales del script se filtran o deben renovarse, el cambio solo debe afectar al propio proceso.
Mueve los mensajes procesados en lugar de borrarlos. Una carpeta «Procesados» ofrece un registro de auditoría y permite repetir el procesamiento después de corregir un error. La eliminación convierte cada fallo en permanente, y habrá fallos.
Prevé la llegada repetida del mismo mensaje. Los reintentos, las reconexiones y el reprocesamiento son inevitables. Usa el Message-ID como clave y omite los identificadores ya vistos. Así, un duplicado deja de ser un problema de datos y se convierte en una operación sin efecto.
Haz que los fallos sean visibles. Si un script deja de consultar el buzón, nadie lo advierte hasta que pregunta por las facturas perdidas. Debe avisar cuando no se haya ejecutado, no solo cuando devuelva un error.
Por qué IMAP encaja bien
La ingesta utiliza IMAP porque funciona como un auténtico sistema de archivos remoto para el correo, no como un mero protocolo de descarga.
Permite buscar en el servidor, obtener solo los encabezados antes de decidir si se descarga el cuerpo, mover mensajes entre carpetas y establecer indicadores sin descargar todo el buzón. El script puede actuar de forma selectiva y económica, algo importante cuando existen años de historial.
La compatibilidad universal es otra ventaja decisiva. Hay bibliotecas para todos los lenguajes, el protocolo no ha cambiado de una forma que rompa las implementaciones y un script creado hoy seguirá funcionando dentro de diez años. Es una garantía mayor que la que ofrecen muchas API de proveedores.
Conviene saber que el plan Free incluye IMAP, por lo que un buzón de ingesta que solo reciba mensajes no cuesta nada. Lo que no puede hacer es enviar. Cualquier proceso que responda mediante un programa necesita un plan de pago o su propio perfil SMTP.
El coste de funcionamiento
El coste suele sorprender porque es menor de lo esperado.
Un buzón de ingesta es un buzón normal, y la cantidad está limitada por el nivel del plan en vez de cobrarse de forma individual. Añadir una duodécima dirección no tiene coste marginal. Eso permite dedicar un buzón a cada fuente sin que sea un lujo. Los recursos que realmente consumes son espacio del almacenamiento compartido y tiempo de atención cuando algo falla.
Este modelo cambia las decisiones de diseño frente a las plataformas que cobran por usuario. En ellas, se suelen mezclar varias fuentes sin relación dentro de una sola dirección para ahorrar. El script resultante debe separar distintos flujos. Aquí, la opción más económica también es la más limpia.
Cuándo es mejor un webhook
Definir claramente este límite evita construir la solución equivocada.
Si el otro sistema proporciona un webhook, utilízalo. El envío inmediato supera al sondeo en latencia, fiabilidad y claridad: recibes datos estructurados en cuanto sucede algo, en vez de descubrirlo durante la siguiente consulta y tener que interpretar texto. La ingesta de correo es la alternativa para cuando esa opción no existe.
El sondeo también tiene un límite razonable. Consultar cada minuto está bien. Hacerlo cada segundo supone un uso abusivo y acabará sometido a límites de frecuencia. Si necesitas tiempo real de verdad, el correo no es el transporte adecuado, independientemente de cómo lo leas.
Interpretar mensajes escritos por personas tampoco es una estrategia fiable. Extraer un número de pedido de un mensaje generado por una máquina funciona de forma predecible. Deducir la intención de un párrafo redactado libremente no. Un flujo que dependa de ello acumulará fallos que nadie podrá eliminar por completo.
Cómo crecer más allá de un buzón
La ingesta de correo se amplía bien, y la estructura adecuada depende del número de flujos.
Para unas pocas fuentes, un buzón por fuente es la opción más clara. Cada script consulta su propia dirección y un cambio no afecta a los demás. Como el número de buzones depende del plan y no se cobra individualmente, veinte direcciones de ingesta cuestan lo mismo que una.
Para muchas fuentes del mismo tipo, funciona mejor un único buzón precedido por un catch-all: factura-acme@ y factura-globex@ llegan al mismo lugar, mientras la dirección contiene la información de enrutamiento que necesita el script. Es la misma técnica que un alias por cada registro, aplicada a máquinas en lugar de proveedores.
Cuando el volumen sea realmente grande, recuerda que el almacenamiento es compartido. Un buzón que acumula adjuntos puede consumirlo con rapidez, así que las cuotas y la política de conservación deben formar parte del diseño desde el principio. Encontrarás más información en las cuotas de almacenamiento por buzón.