Email — La IA envía y recibe correos
Email — AI Sends and Receives Mail — easy-to-understand guide based on official docs
Email — La IA envía y recibe correos
Imagina esto: le envías un correo a tu agente de IA y este te responde — justo en el mismo hilo. Sin aplicaciones de chat sofisticadas, sin API de bots, sin software adicional. Solo el correo electrónico de toda la vida. Eso es exactamente lo que hace el adaptador de pasarela Email para Hermes.
En este artículo, veremos cómo configurarlo, cómo funciona por dentro y cómo mantener tu bandeja de entrada segura.
¿Por qué Email?
El correo electrónico es universal. Todo el mundo tiene una dirección. Al conectar Hermes a tu buzón mediante IMAP estándar (para recibir) y SMTP (para enviar), obtienes una IA conversacional que funciona con Gmail, Outlook, Yahoo, Fastmail o cualquier proveedor que admita estos protocolos.
Y aquí viene lo mejor: cero dependencias externas. El adaptador utiliza los módulos integrados de Python imaplib, smtplib y email. Sin paquetes adicionales, sin servicios de terceros.
Nota: Esto es diferente de la habilidad de correo Himalaya incluida, que permite al agente gestionar tu buzón mediante comandos de terminal. Esa requiere el CLI externo
himalaya. Este adaptador de pasarela es la vía más sencilla y autónoma.
Antes de empezar
Necesitarás tres cosas:
- Una cuenta de correo dedicada para tu agente (por favor, no uses tu bandeja personal)
- IMAP habilitado en esa cuenta
- Una contraseña de aplicación si usas Gmail o cualquier proveedor con autenticación de dos factores
Para Gmail: activa la verificación en dos pasos y luego crea una Contraseña de aplicación en myaccount.google.com/apppasswords. Obtendrás una contraseña de 16 caracteres — úsala en lugar de tu contraseña habitual.
Para Outlook/Microsoft 365: activa la verificación en dos pasos, crea una contraseña de aplicación en “Opciones de seguridad adicionales” y usa outlook.office365.com para IMAP y smtp.office365.com para SMTP.
Para otros proveedores, consulta su documentación para los hosts y puertos IMAP/SMTP (normalmente 993 para IMAP SSL, 587 para SMTP STARTTLS).
Paso 1: Configurar Hermes
La forma más fácil es el asistente de configuración:
hermes gateway setup
Selecciona Email en el menú y sigue las instrucciones. Te pedirá tu dirección, contraseña de aplicación, hosts IMAP/SMTP y remitentes permitidos.
¿Prefieres la configuración manual? Añade esto a ~/.hermes/.env:
# Obligatorio
EMAIL_ADDRESS=hermes@gmail.com
EMAIL_PASSWORD=abcd efgh ijkl mnop # Contraseña de aplicación, no la habitual
EMAIL_IMAP_HOST=imap.gmail.com
EMAIL_SMTP_HOST=smtp.gmail.com
# Seguridad (recomendado)
EMAIL_ALLOWED_USERS=tu@email.com,companero@trabajo.com
# Opcional
EMAIL_IMAP_PORT=993 # Valor predeterminado: 993
EMAIL_SMTP_PORT=587 # Valor predeterminado: 587
EMAIL_POLL_INTERVAL=15 # Segundos entre comprobaciones de la bandeja
EMAIL_HOME_ADDRESS=tu@email.com # Destino predeterminado para trabajos cron
Paso 2: Iniciar la pasarela
hermes gateway # Ejecutar en primer plano
hermes gateway install # Instalar como servicio de usuario
sudo hermes gateway install --system # Linux: servicio del sistema al arrancar
Al iniciarse, el adaptador prueba tanto las conexiones IMAP como SMTP, marca todos los mensajes existentes de la bandeja como “vistos” (para que solo procese correos nuevos) y comienza a sondear.
Cómo funciona
Recepción de mensajes. El adaptador busca correos NO VISTOS cada 15 segundos por defecto. Por cada mensaje nuevo:
- La línea de asunto se incluye como contexto (p. ej.,
[Asunto: Desplegar en producción]) - Las respuestas (asunto que comienza con
Re:) omiten el prefijo del asunto — el contexto del hilo ya está ahí - Los archivos adjuntos se guardan en caché localmente: las imágenes quedan disponibles para la herramienta de visión, y documentos como PDFs y ZIPs para acceso a archivos
- Los correos solo HTML se les eliminan las etiquetas para extraer texto plano
- Los auto-mensajes se filtran para evitar bucles de respuesta
- Los remitentes automatizados se ignoran silenciosamente —
noreply@,mailer-daemon@,bounce@y correos con cabecerasAuto-Submitted,Precedence: bulkoList-Unsubscribe
Envío de respuestas. Las respuestas salen vía SMTP con el hilo correcto: las cabeceras In-Reply-To y References mantienen la conversación unida, el asunto conserva su prefijo Re: (sin doble Re: Re:), y las respuestas se envían como texto plano UTF-8.
Archivos adjuntos. ¿Quieres que el agente te envíe un archivo? Solo incluye MEDIA:/ruta/al/archivo en su respuesta y se adjuntará automáticamente.
Omitir adjuntos. ¿Te preocupa el malware o el ancho de banda? Añade esto a config.yaml:
platforms:
email:
skip_attachments: true
El texto del cuerpo del correo se sigue procesando con normalidad — solo se ignoran los adjuntos.
Control de acceso: sé estricto por defecto
El correo electrónico está más restringido que las plataformas de chat por diseño:
EMAIL_ALLOWED_USERSdefinido → solo se procesan los correos de esas direcciones- Sin lista de permitidos → los remitentes desconocidos se ignoran silenciosamente
EMAIL_ALLOW_ALL_USERS=true→ se acepta cualquier remitente (¡úsalo con precaución!)platforms.email.unauthorized_dm_behavior: pair→ los remitentes desconocidos reciben un código de emparejamiento
La regla de oro: usa una bandeja dedicada y configura siempre EMAIL_ALLOWED_USERS. El emparejamiento por correo es opcional porque las bandejas compartidas suelen contener mensajes no leídos sin relación — Hermes no debería responder a esos contactos por defecto.
Solución de problemas
| Problema | Solución |
|---|---|
| “Error de conexión IMAP” al iniciar | Verifica EMAIL_IMAP_HOST y EMAIL_IMAP_PORT. Asegúrate de que IMAP esté habilitado en la cuenta (Gmail: Configuración → Reenvío y POP/IMAP) |
Conclusión
El adaptador de pasarela Email convierte cualquier buzón estándar en un canal de comunicación para tu agente de IA. Sin dependencias externas, sin clientes especiales — solo IMAP, SMTP y un poco de configuración. Crea una cuenta dedicada, restringe tus remitentes permitidos y deja que los correos fluyan.
¡Feliz correo electrónico! 📧
📖 Documentación oficial
Este artículo se basa en la documentación oficial de Hermes Agent :Docs oficiales › user-guide/messaging/email