Логирование исходящей почты из Postfix на Node.js и TeqFW DI
Дата публикации: 2025-04-13В процессе разработки NutriLog мне понадобилось отслеживать все исходящие письма, отправляемые через Postfix. Так появился небольшой инструмент — smtp-logger.
Это простая утилита на Node.js, которая подключается к Postfix как обработчик через pipe. Она получает полное письмо через `stdin`, извлекает отправителя, получателя и тему, а также сохраняет всю «сырую» MIME-структуру в SQL-базу данных (PostgreSQL, SQLite, MySQL и др. через `knex`).
Что делает этот проект интересным?
Это рабочий пример применения ES6-модулей и позднего связывания зависимостей в архитектуре на JS. Вся структура построена с использованием @teqfw/di — лёгкого DI-контейнера, совместимого с нативным JavaScript (без TypeScript и сборщиков).
Особенности
- Интеграция с Postfix через `pipe` (например, через `always_bcc`)
- Извлечение `from`, `to` и `subject` + сохранение всего письма
- Работа с любой БД, поддерживаемой `knex`
- CLI-интерфейс: команды `init-db` и `log`
- Поддержка SQLite для локального логирования
Важно: схема базы данных не создаётся автоматически. Перед использованием необходимо вручную запустить команду `init-db`.
Если вы используете Postfix только для исходящей почты — это отличное решение для аудита, отладки и логирования сообщений на продакшене или в staging-среде.