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

Переход с 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.

Что понадобится

  1. Аккаунт Mailexam®регистрация занимает пару минут.
  2. Проект с SMTP-учётными данными — создаётся при регистрации; логин, пароль и хост указаны в приветственном письме и в личном кабинете.
  3. Доступ к конфигурации приложения: .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:

  1. Отправить письмо через SMTP (уже с новыми учётными данными).
  2. Подождать доставку (1–5 секунд).
  3. Запросить GET /email с фильтром по теме или получателю.
  4. Проверить тело, заголовки или вложения в ответе API.

Авторизация API — через токен в личном кабинете Mailexam® (см. документацию API).

Шаг 5. Проверьте отправку

  1. Очистите кеш конфигурации приложения (если есть): php artisan config:clear, перезапуск контейнера и т.п.
  2. Отправьте тестовое письмо из приложения или консоли.
  3. Откройте личный кабинет → ваш проект → входящие. Письмо должно появиться за несколько секунд.

Частые проблемы

Письмо не появляется во входящих

  • Проверьте, что 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.