Переход с Mailtrap на Mailexam®¶
Mailtrap и Mailexam® решают одну задачу: перехватывать исходящую почту в разработке, QA и CI/CD, чтобы письма не доходили до реальных получателей. Переход — это замена SMTP-параметров и, при необходимости, API-вызовов в тестах. Код отправки (Mail, Nodemailer, Action Mailer и т.д.) менять не нужно.
Доступность в РФ
Mailtrap заблокирован в России — сайт, SMTP (sandbox.smtp.mailtrap.io) и Sandbox API из РФ часто недоступны без обходных средств. Mailexam® работает в РФ: личный кабинет на mailexam.ru, SMTP на {логин}.mailexam.ru и REST API доступны без VPN. Если Mailtrap перестал открываться или письма не доходят — достаточно сменить учётные данные по инструкции ниже.
Коротко¶
| Mailtrap Sandbox | Mailexam® | |
|---|---|---|
| Назначение | Тестовый SMTP-ящик | Тестовый SMTP-ящик |
| Хост | sandbox.smtp.mailtrap.io |
{логин}.mailexam.ru |
| Порты | 25, 2525, 465, 587 |
25, 2525, 465, 587 |
| Логин | Уникальный для sandbox | Уникальный для проекта |
| Пароль | Пара к логину sandbox | Пара к логину проекта |
| Авторизация SMTP | Обязательна | Обязательна (PLAIN) |
| API для CI/CD | Да | Да |
Рекомендуемый порт
В обоих сервисах удобнее всего 587 + TLS (STARTTLS). Если провайдер блокирует 25-й порт — используйте 2525.
Что понадобится¶
- Аккаунт Mailexam® — регистрация занимает пару минут.
- Проект с SMTP-учётными данными — создаётся при регистрации; логин, пароль и хост указаны в приветственном письме и в личном кабинете.
- Доступ к конфигурации приложения:
.env, переменные CI/CD, секреты pipeline.
Шаг 1. Получите учётные данные Mailexam®¶
После регистрации в приветственном письме (или в кабинете) будут три значения:
| Параметр | Пример | Примечание |
|---|---|---|
| Логин | abc123 |
SMTP-логин проекта |
| Пароль | •••••••• |
Уникальная пара к логину |
| Хост | abc123.mailexam.ru |
Совпадает с логином |
Подробнее об общих параметрах — в разделе Примеры интеграции.
Шаг 2. Замените SMTP-настройки¶
Найдите в проекте переменные Mailtrap и подставьте значения Mailexam®. Ниже — типичные имена переменных; у вас могут быть другие — важна суть: хост, порт, логин, пароль.
Было (Mailtrap)¶
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=ваш_mailtrap_логин
MAIL_PASSWORD=ваш_mailtrap_пароль
MAIL_ENCRYPTION=tls
Стало (Mailexam®)¶
MAIL_HOST=ВАШ_ЛОГИН.mailexam.ru
MAIL_PORT=587
MAIL_USERNAME=ВАШ_ЛОГИН
MAIL_PASSWORD=ВАШ_ПАРОЛЬ
MAIL_ENCRYPTION=tls
Адрес отправителя
MAIL_FROM_ADDRESS / MAIL_FROM может остаться любым тестовым адресом — письмо попадёт в Mailexam®, а не реальному получателю.
Сопоставление параметров¶
| Параметр | Mailtrap | Mailexam® |
|---|---|---|
| Хост | sandbox.smtp.mailtrap.io |
{логин}.mailexam.ru |
| Порт | 2525 (или 587) |
587 (рекомендуется) |
| Логин | из вкладки Integration sandbox | из приветственного письма |
| Пароль | из вкладки Integration sandbox | из приветственного письма |
| Шифрование | TLS / STARTTLS | TLS / STARTTLS |
Примеры по стекам¶
Готовые инструкции с фрагментами кода — в каталоге примеров:
| Стек | Страница |
|---|---|
| Laravel | Laravel |
| Django | Django |
| Node.js / Nodemailer | Node.js |
| Ruby on Rails | Ruby on Rails |
| Spring Boot | Spring Boot |
Шаг 3. Обновите CI/CD¶
Если в pipeline хранятся секреты Mailtrap — замените их на Mailexam®:
| Было (Mailtrap) | Стало (Mailexam®) |
|---|---|
MAILTRAP_USER / MAILTRAP_USERNAME |
MAILEXAM_LOGIN |
MAILTRAP_PASS / MAILTRAP_PASSWORD |
MAILEXAM_PASSWORD |
MAIL_HOST=sandbox.smtp.mailtrap.io |
MAIL_HOST=${MAILEXAM_LOGIN}.mailexam.ru |
Пример для GitLab CI:
variables:
MAIL_HOST: "${MAILEXAM_LOGIN}.mailexam.ru"
MAIL_PORT: "587"
MAIL_USERNAME: "${MAILEXAM_LOGIN}"
MAIL_PASSWORD: "${MAILEXAM_PASSWORD}"
MAIL_ENCRYPTION: "tls"
Секреты MAILEXAM_LOGIN и MAILEXAM_PASSWORD добавьте в CI/CD Variables проекта.
Шаг 4. Перенесите автотесты с API (если использовали)¶
Mailtrap Sandbox API позволяет программно получать список писем и проверять содержимое. В Mailexam® аналогичные сценарии реализуются через REST API:
| Задача | Mailtrap | Mailexam® |
|---|---|---|
| Список писем | Sandbox API | GET /api/v1/email |
| Одно письмо | Sandbox API | GET /api/v1/email/{uuid} |
| Вложение | Sandbox API | GET /api/v1/email/{uuid}/attachment |
| Управление проектами | Sandboxes API | GET /api/v1/project |
Типичный сценарий в CI:
- Отправить письмо через SMTP (уже с новыми учётными данными).
- Подождать доставку (1–5 секунд).
- Запросить
GET /emailс фильтром по теме или получателю. - Проверить тело, заголовки или вложения в ответе API.
Авторизация API — через токен в личном кабинете Mailexam® (см. документацию API).
Шаг 5. Проверьте отправку¶
- Очистите кеш конфигурации приложения (если есть):
php artisan config:clear, перезапуск контейнера и т.п. - Отправьте тестовое письмо из приложения или консоли.
- Откройте личный кабинет → ваш проект → входящие. Письмо должно появиться за несколько секунд.
Частые проблемы¶
Письмо не появляется во входящих
- Проверьте, что
MAIL_HOST—{логин}.mailexam.ru, а неsmtp.mailexam.ruилиsandbox.smtp.mailtrap.io. MAIL_USERNAMEдолжен совпадать с частью хоста до.mailexam.ru.- Убедитесь, что SMTP-авторизация включена и пароль скопирован без лишних пробелов.
Ошибка подключения / timeout
- Если в конфиге ещё указан
sandbox.smtp.mailtrap.io— в РФ этот хост может быть недоступен; переключитесь на{логин}.mailexam.ru. - Попробуйте порт 587 или 2525 вместо 25.
- Проверьте, не блокирует ли firewall исходящие SMTP-соединения (типично в корпоративных сетях и CI-раннерах).
В CI всё ещё используются старые секреты
- Переименование переменных недостаточно — значения должны быть от Mailexam®, не от Mailtrap.
- После смены секретов перезапустите pipeline.
Нужно несколько изолированных ящиков
- В Mailtrap — отдельные sandbox. В Mailexam® — отдельные проекты или почтовые ящики внутри проекта (см. API «Входящие»,
/inbox).
Что ещё стоит знать¶
- История писем из Mailtrap не переносится — в Mailexam® начинается новый sandbox. Старые письма останутся в Mailtrap, пока аккаунт активен.
- Код приложения менять не нужно — только конфигурация SMTP и, при необходимости, тесты с API.
- Mailexam® не использует cookies для отслеживания на сайте — см. Почему мы не храним cookies.
Вопросы и ответы¶
Mailtrap недоступен из России — что делать? Перейдите на Mailexam®: зарегистрируйтесь, замените SMTP-параметры и секреты CI/CD по шагам выше. Сервис работает из РФ без VPN.
Можно ли использовать оба сервиса параллельно?
Да, если Mailtrap доступен из вашей сети. Создайте отдельный проект Mailexam® для staging/CI, а Mailtrap оставьте на переходный период — переключение делается сменой .env. Для команд в РФ обычно достаточно только Mailexam®.
Нужно ли менять DNS или SPF? Нет. Оба сервиса принимают письма по SMTP в тестовый ящик; настройки домена отправителя не влияют на доставку в sandbox.
Есть ли лимиты? Зависят от тарифа Mailexam®. Для разработки и CI обычно достаточно бесплатного или стартового плана — актуальные условия на mailexam.ru.
Нужна помощь с миграцией конкретного стека? Напишите на support@mailexam.ru.