Registro de correo saliente de Postfix en Node.js y TeqFW DI
Fecha de publicación: 2025-04-13Durante el desarrollo de NutriLog, necesitaba rastrear todos los correos salientes enviados a través de Postfix. Así surgió una pequeña herramienta — smtp-logger.
Es una utilidad simple en Node.js que se conecta a Postfix como un manejador a través de pipe. Recibe el correo completo a través de `stdin`, extrae el remitente, destinatario y asunto, y guarda toda la estructura MIME "cruda" en una base de datos SQL (PostgreSQL, SQLite, MySQL, etc. mediante `knex`).
¿Qué hace interesante este proyecto?
Es un ejemplo funcional de aplicación de módulos ES6 y enlace tardío de dependencias en arquitectura JS. Toda la estructura está construida usando @teqfw/di — un contenedor DI ligero, compatible con JavaScript nativo (sin TypeScript ni bundlers).
Características
- Integración con Postfix mediante `pipe` (por ejemplo, a través de `always_bcc`)
- Extracción de `from`, `to` y `subject` + almacenamiento del correo completo
- Funciona con cualquier base de datos compatible con `knex`
- Interfaz CLI: comandos `init-db` y `log`
- Soporte para SQLite en registros locales
Importante: el esquema de la base de datos no se crea automáticamente. Antes de usar, es necesario ejecutar manualmente el comando `init-db`.
Si usas Postfix solo para correo saliente — esta es una excelente solución para auditoría, depuración y registro de mensajes en producción o entornos de staging.