Перейти к содержанию

MailHog/Mailpit: локально или Mailexam® для команд

MailHog и Mailpit — популярные локальные инструменты для перехвата исходящей почты в разработке. Они запускаются на вашей машине или в Docker, принимают SMTP на localhost и показывают письма в веб-интерфейсе. Для одного разработчика на ноутбуке это удобно и бесплатно.

Mailexam® решает ту же базовую задачу — тестовый SMTP-ящик вместо реальных получателей — но как облачный сервис для совместной работы: общие Входящие для команды, доступ из CI/CD и staging без туннелей, API для автотестов. Подходит и для распределённых команд вплоть до международных, когда разработчики, QA и DevOps работают из разных офисов и часовых поясов.

Доступность в РФ

Официальный сайт Mailpit недоступен из Россииmailpit.axllent.org и документация на нём из РФ часто не открываются без обходных средств. Docker-образ axllent/mailpit и релизы на GitHub из РФ обычно доступны. Mailexam® работает в РФ: личный кабинет на mailexam.ru, SMTP на {логин}.mailexam.ru и REST API доступны без VPN. Если команде нужен общий ящик для CI/CD и QA, а не локальный перехватчик на ноутбуке — перейдите на Mailexam® по инструкции ниже.

Коротко

MailHog Mailpit Mailexam®
Модель Локальный процесс / контейнер Локальный процесс / контейнер Облачный SaaS
Аудитория Один разработчик на машине Один разработчик на машине Команда, CI/CD, QA
Общие Входящие Нет — ящик на конкретном хосте Нет — ящик на конкретном хосте Да — один проект, общий доступ
Доступ из CI/CD Только если runner на той же машине То же Да — SMTP и API из любого runner'а
Доступ для коллег SSH, screen share, проброс порта То же Браузер и API по учётным данным
Учётные записи и роли Нет Нет Аккаунт, проекты, API-токены
История при перезапуске Теряется (по умолчанию) Настраивается локально Хранится в облаке
API для автотестов Ограничен (MailHog) / есть (Mailpit) REST API REST API
Доступность из РФ Локально — без ограничений Официальный сайт и документация часто недоступны Да — без VPN

Не «хуже» и «лучше»

MailHog/Mailpit — отличный выбор для личной отладки на ноутбуке. Mailexam® нужен, когда письма должны видеть несколько людей или удалённые системы (CI, staging, коллега в другом городе) без возни с сетью.

Для кого подходят MailHog/Mailpit

Локальные перехватчики хорошо закрывают сценарий «я один, пишу код, смотрю письмо рядом»:

  • быстрый старт через docker run или бинарник без регистрации;
  • полный контроль над данными на своём диске;
  • нет зависимости от внешнего сервиса;
  • достаточно для проверки шаблона, вёрстки или SMTP-интеграции на своей машине.

По сути это однопользовательские решения: Входящие живут там, где запущен процесс. Другой человек не откроет ваш Mailpit, пока вы не пробросите порт, не поднимете VPN и не объясните, на каком хосте смотреть.

Где локальные инструменты упираются в потолок

Когда в проекте появляется команда, типичные боли выглядят так:

1. «Письмо у меня на ноутбуке, а QA его не видит»

Разработчик отправил тестовое письмо — оно попало в локальный Mailpit. Тестировщик в другом офисе (или на другом континенте) не может открыть те же Входящие: у него другая машина, другой localhost. Остаются скриншоты, созвоны и «скинь ссылку из письма в Slack».

2. CI/CD и общие runner'ы

В pipeline письмо уходит на 127.0.0.1:1025. На общем CI-runner'е (GitLab, GitHub Actions, Jenkins) рядом с вашим приложением нет вашего Mailpit — или он принадлежит другому job'у и очищается после сборки. Чтобы проверить письмо в CI, приходится поднимать Mailpit в том же job'е, парсить API или мокать отправку — это усложняет pipeline.

3. Staging и несколько сред

Staging-сервер, preview-окружение и локальная разработка — три разных хоста, три разных локальных ящика (если вообще настроены). Нет единого места, где QA смотрит «все тестовые письма проекта». Сравнить поведение между средами сложнее.

4. Международные и распределённые команды

Когда команда в Москве, Берлине и Сингапуре, «зайди на мой localhost через VPN» не масштабируется: часовые пояса, корпоративные firewall'ы, политики безопасности. Нужен общий адрес и общая история, доступная из браузера без проброса портов на ноутбук разработчика.

5. Онбординг и единые настройки

Каждый новый разработчик поднимает Mailpit по-своему: другой порт в docker-compose, другая версия образа, забытый сервис в README. В Mailexam® достаточно одних SMTP-параметров из приветственного письма — их копируют в .env и CI-секреты; Входящие одни для всех.

6. Нет разделения доступа

Локальный перехватчик не знает про «только QA» или «только CI-токен». Либо у человека есть доступ к машине/контейнеру, либо нет. Для продуктовой команды часто нужны отдельные проекты (feature, staging, demo) и API-токены для автотестов — без root на сервере.

Как Mailexam® устроен для коллективной работы

Mailexam®облачный тестовый SMTP-ящик с личным кабинетом и API. Письма не уходят реальным получателям; они попадают в проект в вашем аккаунте.

Что это даёт команде:

Задача Решение в Mailexam®
Общие Входящие Один проект — одни SMTP-учётные данные; все, у кого есть доступ, видят те же письма в кабинете
CI/CD Runner отправляет на {логин}.mailexam.ru — письмо доступно и в pipeline (через API), и человеку в браузере
Staging / preview Те же credentials на сервере — QA проверяет письма без доступа к серверу
Автотесты REST API: список писем, тело, вложения — один сценарий для всей команды
Несколько сред Отдельные проекты или почтовые ящики внутри проекта (см. API)
Распределённая команда HTTPS-кабинет из любой точки мира; не нужен VPN на ноутбук разработчика

Типичный рабочий процесс:

  1. Тимлид или DevOps создаёт проект (или использует проект из регистрации).
  2. SMTP-логин, пароль и хост рассылаются команде и добавляются в CI-секреты.
  3. Разработчик, QA и pipeline шлют почту в один sandbox.
  4. QA открывает письмо в кабинете; CI проверяет содержимое через API.

Подробнее о подключении — в примерах интеграции.

Когда что выбирать

Ситуация Рекомендация
Один разработчик, офлайн, всё на ноутбуке MailHog/Mailpit или Mailexam® (если есть интернет)
Команда от 2 человек, общий QA Mailexam®
Команда в РФ, нужен общий sandbox без VPN Mailexam®
Автотесты писем в CI на shared runner'ах Mailexam®
Staging + dev + CI — одна «правда» о письмах Mailexam®
Удалённая или международная команда Mailexam®
Жёсткое требование «всё только on-prem, без облака» MailHog/Mailpit (или self-hosted аналог)

Переход с MailHog/Mailpit

Код отправки менять не нужно — только SMTP-параметры в .env, docker-compose и CI/CD.

Было (локально)

MAIL_HOST=127.0.0.1
MAIL_PORT=1025
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null

Порт может быть 1025 (MailHog) или 1025 / 587 (Mailpit). Авторизация часто отключена.

Стало (Mailexam®)

MAIL_HOST=ВАШ_ЛОГИН.mailexam.ru
MAIL_PORT=587
MAIL_USERNAME=ВАШ_ЛОГИН
MAIL_PASSWORD=ВАШ_ПАРОЛЬ
MAIL_ENCRYPTION=tls

Учётные данные — в приветственном письме после регистрации или в личном кабинете.

Docker Compose

Сервис mailpit в docker-compose.yml можно убрать из профиля разработки для команды — приложение ходит напрямую в Mailexam®. Локальный Mailpit имеет смысл оставить только тем, кто сознательно работает полностью offline.

Автотесты

Если тесты ходили в Mailpit API (/api/v1/messages и т.п.), переключите их на API Mailexam® — типичный сценарий: отправка по SMTP → пауза 1–5 с → GET /api/v1/email с фильтром по теме или получателю.

Что ещё стоит знать

  • История из локального MailHog/Mailpit не переносится — в Mailexam® начинается новый общий ящик.
  • Mailexam® не использует cookies для отслеживания — см. Почему мы не храним cookies.

Вопросы и ответы

Официальный сайт Mailpit недоступен из России — что делать? Сайт и документация на mailpit.axllent.org из РФ могут не открываться — образ на Docker Hub и релизы на GitHub при этом обычно доступны. Если нужен общий тестовый ящик для команды, CI/CD и QA без локального localhost, зарегистрируйтесь в Mailexam® и замените SMTP-параметры по шагам выше. Сервис работает из РФ без VPN.

Можно ли оставить Mailpit локально и параллельно использовать Mailexam®? Да, если локальный перехватчик нужен для личной отладки на ноутбуке. Для CI, staging и совместного QA в РФ обычно достаточно только Mailexam®.

MailHog тоже недоступен из РФ? MailHog распространяется через GitHub и чаще скачивается без проблем, но остаётся локальным инструментом: коллеги и CI не увидят те же письма без проброса портов и VPN. Для команд в РФ удобнее облачный sandbox Mailexam®.


Нужна помощь с настройкой для вашей команды? Напишите на support@mailexam.ru.