Покрывая разрабатываемый движок (CMS) тестами, а точнее его функции REST API, возникла необходимость отладки отправляемых e-mail сообщений в автоматическом режиме. Причем, тесты работают под управлением Mocha на Node.js. Значит и виртуальный SMTP сервер необходимо было найти под Node.js. Ведь нужно чтобы этот SMTP сервер поставлялся в виде NPM пакета. Проще говоря, скачал разработчик движок с репозитария Github, выполнил пару команд npm install && gulp test и тут же получил результат покрытых тестов. Т.е. движок, во время прохождения тестов будет отправлять e-mail сообщения, а тесты должны уметь эти сообщения перехватывать и проверять сами сообщения.
В общем погуглив в поисках готового решения, так ни чего и не нашел.

В итоге был разработано решение под названием SMTPeshka
Лицензия MIT
Исходники на Github: https://github.com/abricos/smtpeshka
Пакет NPM: https://www.npmjs.com/package/smtpeshka

Возможности:
- запуск виртуального SMTP-сервера с командной строки
- перехват отправляемых сообщений с сохранением их в файлы (JSON формат)
- панель просмотра отправленных сообщений в браузере
- REST API функции получения списка отправленных сообщений

Установка
Код:
$ [sudo] npm install -g smtpeshka
Запуск
Создаем папку рабочего проекта, например my-smtp-test и запускаем в ней smtpeshk-у:
Код:
$ mkdir my-smtp-test
$ cd my-smtp-test
$ smtpeshka
Далее настраиваем свой движок для отправки e-mail через SMTP:
Код:
host: localhost
port: 2525
Теперь все отправленные сообщения вашим движком будут складываться в папку sent-emails папки запуска smtpeshk-и.

Так же просмотреть эти сообщения можно в веб-панели в браузере по адресу: http://localhost:2580
Нажмите на изображение для увеличения.  Название:	home.jpg  Просмотров:	3  Размер:	12.7 Кб  ID:	16711
Нажмите на изображение для увеличения.  Название:	email.jpg  Просмотров:	2  Размер:	10.1 Кб  ID:	16712

Еще имеется возможность самостоятельной настройки портов веб-сервера и SMTP-сервера

Более подробные инструкции смотрите в реадми репозитария на Github:
https://github.com/abricos/smtpeshka

Вопросы и пожелания оставляйте в комментариях или в баг-трекере проекта на GitHub.

Пулл-реквесты приветствуются. Даже если вы нашли опечатку, ошибку в документации, не проходите мимо, отправляйте свой пулл-реквест, он не останется не замеченным.