Логирование исходящей почты из Postfix на Node.js и TeqFW DI
В процессе разработки 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+ сохранение всего письмаРабота с любой БД, поддерживаемой
knexCLI-интерфейс: команды
init-dbиlogПоддержка SQLite для локального логирования
Важно: схема базы данных не создаётся автоматически. Перед использованием необходимо вручную
запустить команду init-db.
Если вы используете Postfix только для исходящей почты — это отличное решение для аудита, отладки и логирования сообщений на продакшене или в staging-среде.