---
title: "Registro de correo saliente de Postfix en Node.js y TeqFW DI"
description: "Creé una utilidad para registrar correos salientes de Postfix en SQL mediante Node.js y @teqfw/di."
date: 2025-04-13
display_date: "13 de abril de 2025"
image: "/img/brand/teqfw.webp"
image_alt: "smtp-logger para Postfix y Node.js"
---

# Registro de correo saliente de Postfix en Node.js y TeqFW DI

<zoom-img
            src="/img/brand/teqfw.webp"
            alt="TeqFW smtp-logger"
            width="100px"
            style="float: left; margin: 15px 15px 0 0;"
    ></zoom-img>

Durante el desarrollo de NutriLog, necesitaba rastrear todos los correos salientes enviados a través de **Postfix**.
        Así surgió una pequeña herramienta —
        [smtp-logger](https://github.com/flancer64/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](https://github.com/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.
