Volver al Blog
HermesEmailIMAPAI Agents

Ejecuta Hermes Agent como asistente de email

Configura Hermes Agent como asistente de email con IMAP y SMTP: contraseñas de aplicación, allowlist, hilos, adjuntos y opciones gestionadas.

Por Hermify Team||9 min de lectura
Icono de sobre junto a un prompt de terminal, representando a Hermes Agent respondiendo email mediante IMAP y SMTP

Por qué el email es una interfaz infravalorada para un agente de IA

Telegram, Slack y Discord se llevan toda la atención cuando se habla de desplegar un agente de IA en una superficie real. El email es más viejo y más silencioso, pero tiene una propiedad que las apps de chat no tienen: cualquier dispositivo del planeta ya lo habla de forma nativa, y cualquier flujo de trabajo que ya tienes - tickets, facturas, alertas, formularios de contacto, confirmaciones de proveedores - acaba aterrizando tarde o temprano en una bandeja de entrada.

Ejecutar Hermes Agent como asistente de email convierte esa bandeja en una conversación. Reenvías un hilo a tu agente, lee todo el contexto y responde en el mismo hilo con la misma memoria persistente que usa en Telegram o en la terminal. Sin clientes nuevos, sin API que llamar, sin app extra que instalen las personas a las que les reenvías mensajes.

Esta guía recorre la configuración exacta: cuenta de email dedicada, contraseña de aplicación, las variables EMAIL_* que Hermes espera, la allowlist que mantiene fuera a los extraños y las reglas de hilo que hacen que las respuestas parezcan humanas. Al final puedes empezar con Hermify si prefieres la versión gestionada en lugar de operar credenciales IMAP a mano.

Qué es realmente el adaptador de email

Hermes incluye una pasarela de email construida sobre los módulos estándar de Python imaplib, smtplib y email. No hay paquetes extra, ni SaaS de terceros en el camino, ni broker de mensajes delante. El adaptador es un bucle de polling que:

  1. Conecta con tu servidor IMAP por SSL.
  2. Recoge mensajes UNSEEN de la bandeja a un intervalo configurable.
  3. Pasa el cuerpo (y los adjuntos permitidos) al runtime del agente como mensaje de usuario.
  4. Devuelve la respuesta por SMTP con las cabeceras In-Reply-To y References correctas para que el hilo siga unido.

Como habla IMAP y SMTP en bruto, funciona con Gmail, Outlook, Yahoo, Fastmail, ProtonMail Bridge, Migadu o cualquier proveedor que exponga los puertos estándar. No hay nada específico de Gmail en el adaptador, lo que significa que puedes cambiar de proveedor sin tocar el agente.

Diagrama del correo entrando por una bandeja IMAP, pasando por el runtime de Hermes y saliendo de nuevo por SMTP

Antes de empezar: una cuenta dedicada, siempre

No apuntes Hermes a tu email personal. Tres razones:

  • Las credenciales IMAP quedan en texto plano en .env. Cualquiera que pueda leer ese fichero puede leer todos los mensajes que has recibido en esa dirección.
  • El adaptador tiene acceso de lectura completo a la bandeja por diseño. Un bug en una skill podría, en teoría, marcar mensajes como leídos, borrar borradores o reenviar contenido.
  • Los reinicios en frío, los reintentos y los desajustes de reloj pueden producir respuestas duplicadas. No quieres que esas aterricen en un hilo con tu CEO.

Crea una dirección nueva: [email protected], [email protected] o cualquier otra que no te cueste nada tirar. Reenvía los mensajes que quieres que vea el agente a esa dirección desde tu bandeja real, usando un filtro de Gmail o una regla de Outlook. Eso te da una frontera dura entre "lo que puede tocar el agente" y "todo lo demás".

Paso 1: genera una contraseña de aplicación de Gmail (o el equivalente)

Si usas Gmail, el camino IMAP/SMTP requiere una contraseña de aplicación, no tu contraseña normal. Google eliminó la opción de desactivar IMAP en enero de 2025, así que está activo por defecto, pero "Aplicaciones menos seguras" ya no funciona y OAuth es exagerado para una sola cuenta.

El flujo:

  1. Activa la verificación en 2 pasos en myaccount.google.com/security. Las contraseñas de aplicación no aparecen hasta que el 2FA esté activo.
  2. Entra en myaccount.google.com/apppasswords.
  3. Genera una contraseña para "Mail". Google devuelve una cadena de 16 caracteres en cuatro bloques de cuatro.
  4. Cópiala sin los espacios. Los espacios son solo visuales y rompen algunos clientes.

Para Outlook/Microsoft 365, el equivalente está en account.microsoft.com/security, bajo "Contraseñas de aplicación" (también necesitas 2FA). Para Fastmail, genera una contraseña por aplicación en Settings > Password & Security. Para Postfix/Dovecot autoalojado, usa la contraseña SMTP/IMAP que definiste al aprovisionar el buzón.

Paso 2: conecta las variables de email de Hermes

El adaptador de email se configura completamente mediante variables de entorno EMAIL_*. La configuración mínima viable para Gmail es:

# Identidad
[email protected]
EMAIL_PASSWORD=abcd1234efgh5678   # 16 caracteres, sin espacios

# IMAP (entrante)
EMAIL_IMAP_HOST=imap.gmail.com
EMAIL_IMAP_PORT=993               # SSL

# SMTP (saliente)
EMAIL_SMTP_HOST=smtp.gmail.com
EMAIL_SMTP_PORT=587               # STARTTLS

# Polling
EMAIL_POLL_INTERVAL=15            # segundos

EMAIL_POLL_INTERVAL es el ritmo al que el adaptador pregunta a IMAP por mensajes nuevos. Los 15 segundos por defecto son un buen equilibrio: lo bastante bajo como para sentirse responsivo, lo bastante alto como para que Gmail no empiece a limitarte. Si lo bajas de 5 segundos Google acabará devolviendo fallos de autenticación temporales y vas a pasar una hora depurando errores de "contraseña incorrecta" que no tienen nada que ver con la contraseña.

Mete esas variables en .env (el fichero que Hermes carga al arrancar) y haz chmod 600 .env para que no sea legible por todo el mundo. Si ejecutas Hermes en Docker, monta el fichero en solo lectura y no metas nunca credenciales en la imagen.

Paso 3: cierra la bandeja con una allowlist

Este es el paso de seguridad más importante de toda la configuración, y el que más tutoriales se saltan.

Por defecto, un agente Hermes escuchando email responderá a cualquiera que le escriba. Si tu dirección es [email protected], cualquiera que la adivine, la filtre o la rastree puede enviarle órdenes. El email es público por dirección. No existe el equivalente al filtro de Telegram "los usuarios tienen que iniciar el chat primero".

Hermes expone tres modos:

| Modo | Comportamiento | |---|---| | [email protected],[email protected] | Solo se procesan esas direcciones. Todo lo demás se descarta en silencio. | | Sin definir | Los remitentes desconocidos reciben un código de emparejamiento de un solo uso al que deben responder para registrarse. | | EMAIL_ALLOW_ALL_USERS=true | Se acepta cualquier remitente. Úsalo solo en una dirección privada que no esté publicada en ningún sitio. |

Usa la allowlist explícita en cualquier despliegue real:

[email protected],[email protected]

Añade tu dirección y el puñado de personas autorizadas a manejar el agente. Trata la allowlist como un fichero SSH authorized_keys: pequeña, revisada y, si es posible, versionada en un repo privado.

Paso 4: hilos y adjuntos

Cuando Hermes responde, fija las cabeceras In-Reply-To y References según RFC 2822 y preserva el Subject original con un solo Re: por delante (sin cadenas de Re: Re: Re:). El resultado es que las respuestas caen dentro del hilo original en Gmail, Apple Mail, Outlook web, Spark y Fastmail. Algunas versiones antiguas de Outlook de escritorio ignoran las cabeceras y abren un hilo nuevo: ese es un bug del cliente, no del agente.

Los adjuntos funcionan en ambas direcciones:

  • Entrantes: el adaptador guarda los adjuntos en ~/.hermes/inbox/email/<message-id>/ para que el agente pueda leerlos con sus herramientas de sistema de ficheros. Los PDFs se extraen a texto a través de la skill de PDF integrada si está activa, y las imágenes se mandan a modelos con visión cuando el proveedor configurado lo soporta.
  • Salientes: las skills que producen ficheros pueden adjuntarlos a la respuesta. El adaptador construye un cuerpo MIME multiparte para que el receptor vea tanto el texto como el fichero.

La implicación práctica es que puedes reenviar un contrato de 40 páginas al agente, pedir un resumen y recibir la respuesta en el mismo hilo con el resumen en el cuerpo. Combina eso con la memoria persistente de Memoria y skills de Hermes Agent y el agente recuerda el contrato tres semanas después cuando le preguntas "¿cuál era ese NDA que recibimos en mayo?".

Foto realista de un rack de servidores con una sola unidad iluminada, sugiriendo un oyente de bandeja siempre activo y silencioso

Paso 5: verifica de punta a punta

Un test de humo de cinco minutos:

  1. Arranca Hermes con el nuevo .env. Observa los logs: el primer polling de IMAP debería registrar connected y una línea idle. Si ves 535 5.7.8 Username and Password not accepted, tu contraseña de aplicación es incorrecta o tiene espacios.
  2. Envía un email plano desde tu propia dirección (allowlistada) al agente. Asunto: "ping". Cuerpo: "¿qué puedes hacer?".
  3. Espera un intervalo de polling. La respuesta debería llegar dentro del hilo, con Re: ping como asunto.
  4. Responde a esa respuesta con una pregunta de seguimiento. El agente debería responder con el turno anterior en contexto, porque la pasarela enhebra por Message-ID.
  5. Manda un email desde una dirección que no esté en la allowlist. Confirma que no vuelve nada. Confirma que los logs muestran un descarte de remitente, no un éxito silencioso.

Si los cinco pasos pasan, tienes un asistente de email funcionando.

Cuándo usar AgentMail en lugar de IMAP nativo

El adaptador IMAP nativo es la respuesta correcta para cuentas personales y equipos pequeños. Hay un caso en el que una bandeja separada tiene más sentido: construir productos en los que usuarios finales escriben al producto y un agente les responde a escala. Para ese camino, el servidor MCP de AgentMail le da al agente una bandeja estructurada por usuario sin tocar tu dominio real. El coste es un vendor más en el camino; el beneficio es la separación por usuario y una API limpia para analítica de producto.

Para todo lo demás - tu propio asistente, una bandeja de operaciones, un agente de formularios entrantes, un triador de confirmaciones de proveedores - IMAP/SMTP nativo es más rápido de montar y gratis.

O salta todo esto con hosting gestionado

Cada paso de arriba es trabajo real. Las contraseñas de aplicación caducan cuando rotas el 2FA, los proveedores de IMAP a veces te bloquean por "actividad sospechosa" en un login nuevo y un único bucle de polling en un portátil muere en el momento en que el portátil se duerme. La mayoría del soporte que genera un Hermes autoalojado es justamente esta capa: credenciales, allowlists y uptime.

Hermify ejecuta el runtime de Hermes Agent como servicio gestionado. Email, Telegram, Slack y Signal se conectan desde un panel, las credenciales se cifran en reposo, el bucle de polling corre en infraestructura que no se duerme y el agente persiste su memoria entre sesiones sin que mantengas nada. Si quieres la superficie de email sin tener que cuidar IMAP, empieza con Hermify y sáltate los pasos 1 al 5 enteros. Si quieres comparar desplegar email con desplegar otras superficies, mira la guía de despliegue de Telegram: las contrapartidas son muy parecidas.

Fuentes

Lanza tu propio agente Hermes

Trae tu clave de API, conecta Telegram y ten un agente de IA que evoluciona solo activo en 60 segundos.

Empezar