Почта для тестирования регистрации: настоящий Gmail для QA

Почта для тестирования регистрации должна принимать настоящие письма: только так видно, что код или ссылка подтверждения уходят, доходят вовремя и срабатывают. Для внутренних прогонов хватает перехватчика SMTP вроде Mailpit. А реальную доставку на Gmail и iCloud проверяют на настоящем ящике — своём тестовом или арендованном на один заказ.

Статья для тестировщиков и разработчиков, которые проверяют собственную форму регистрации, вход по коду или письма для сброса пароля. Здесь — как выбрать способ, какие тест-кейсы закрывает арендованный ящик и где его пределы.

Что QA проверяет в письме подтверждения

Письмо с кодом — часть регистрации, и ломается оно в нескольких местах:

Отправку и содержимое можно проверить где угодно. Доставку и отчасти отображение — только на настоящих ящиках.

Почта для тестирования: три способа

То, что ищут как «временная почта для тестирования», на деле бывает тремя разными инструментами. OTPGmail к сайтам временной почты не относится: это настоящий ящик @gmail.com или @icloud.com, арендованный на один заказ, — третий столбец таблицы.

Перехватчик SMTP (Mailpit, MailHog) Свой тестовый Gmail Арендованный Gmail или iCloud
Письмо уходит в интернет Нет, остаётся в локальной ловушке Да Да
Проходит фильтры Gmail и iCloud Нет Только Gmail Да, оба типа адреса
Сколько адресов Сколько угодно, на любом домене Сколько аккаунтов заведёте и будете поддерживать Один на заказ, в одном запросе API до 200
Что нужно для старта Поднять контейнер Создать аккаунт Google, возможно с телефоном Баланс в OTPGmail
Автоматизация API перехватчика Gmail API и OAuth REST API с личным ключом
Видно, в какую папку попало письмо Не применимо Да Нет — только код или само письмо

Перехватчик — основа для юнит- и интеграционных тестов: он ничего не стоит, работает без сети и ловит письма на любой адрес. Но он не скажет, примут ли письмо Gmail и iCloud. Свой тестовый ящик честно показывает папку («Входящие» или «Спам»), зато аккаунты Google приходится создавать и обслуживать самим. Арендованный ящик закрывает доставку на настоящие Gmail и iCloud без своих аккаунтов, но папку письма не показывает.

Зачем проверять доставку на настоящем ящике

Gmail и iCloud проверяют подлинность отправителя — записи SPF, DKIM и DMARC вашего домена — и письмо без них могут отправить в «Спам» или не принять. Перехватчик SMTP этого не увидит: на стенде всё зелёное, а у пользователей код «не приходит». Поэтому перед релизом и после смены почтового провайдера или домена отправителя полезно прогнать регистрацию на настоящих адресах обоих типов.

Отдельный случай — кнопка «Войти через Google» в вашем приложении. Для неё нужен не адрес, а аккаунт Google, в который можно войти; аренда здесь не поможет. Как тестировать этот сценарий, разобрано в статье вход через Google.

Тест-кейсы и как закрыть их арендованным ящиком

Тест-кейс Что проверить Как с арендованным ящиком
Письмо доходит Код пришёл за допустимое время Засечь время от отправки формы до появления кода в заказе
Код корректен Длина, формат, код принимается формой Скопировать код из заказа и ввести
Ссылка вместо кода Ссылка ведёт на нужную среду Ссылка появляется в заказе вместо цифр — откройте её
Повторная отправка Новый код отменяет прежний Нужен ящик, который принимает несколько писем — см. ниже
Вёрстка письма HTML, текст, заголовки Если в заказе есть кнопка «Открыть письмо» — вкладки «Просмотр», «Текст», «Исходный код»
Папка «Спам» Письмо не попадает в спам Не закрывается арендой — нужен свой тестовый ящик

Для писем со своего стенда выбирайте вариант «Любой сервис»: он для сайтов, которых нет в списке, и стоит дороже обычных. Его ящик Gmail принимает один код, а ящик iCloud показывает все новые письма в течение 24 часов и выдаётся только из тех, что вы раньше не арендовали. Поэтому кейсы с повторной отправкой удобнее гонять на iCloud.

Ручной прогон по шагам

  1. Откройте форму регистрации на стенде.
  2. В OTPGmail откройте «Арендовать ящик», в поле «Сервис» выберите «Any service» (так в списке приложения называется «Любой сервис»), в поле «Тип адреса» — Gmail или iCloud и нажмите «Арендовать».
  3. Скопируйте адрес из колонки «E-mail» и отправьте форму.
  4. Пока письма нет, в заказе стоит «Ждём код» с отсчётом «Истекает через:». Код или ссылка появятся в колонке «Коды».
  5. Нет письма за 25 минут — заказ отменяется сам, и 100 % возвращается на баланс (правила возврата). Для QA это тоже результат: письмо до настоящего ящика не дошло, пора смотреть логи отправки.

Автотесты: API вместо ручных шагов

В автотестах тот же путь проходят запросами:

Готовый клиент на Python с фикстурой pytest и примером Playwright — в инструкции API для получения кода из почты на Python, обзор всех запросов и ошибок — на странице API для почты.

Если нужно сразу много адресов на прогон, есть пакетная аренда: от 1 до 200 ящиков по цене разовой аренды, пакет хранится 24 часа. Но за ящики пакета без кода деньги не возвращаются — для тестов, где письмо может не прийти по вине стенда, разовые заказы через API выгоднее.

Чего не делать

Часто задаваемые вопросы

Можно ли тестировать на почте на 10 минут?

Для своего стенда — можно, если вы проверяете только отправку и содержимое. Но такие ящики живут на случайных доменах и не показывают, как письмо примут Gmail и iCloud, а входящие в них часто видят посторонние.

Как быть, если приложение шлёт ссылку, а не код?

Ничего менять не нужно: ссылка появится в заказе вместо цифр, а в ответе API — в поле code элемента массива otp. Открывайте её в том браузере, где идёт тест.

Сколько стоит один прогон?

Цена берётся за аренду, а не за время; «Любой сервис» дороже обычных сервисов. Деньги списываются только при выдаче ящика, а заказ без кода возвращается полностью. Актуальные цены — в списке сервисов приложения.

Похожие материалы

Получите код подтверждения на настоящий Gmail

Регистрация ничего не стоит. Деньги списываются только при выдаче ящика; нет кода за время ожидания (не более 25 минут) — 100 % автоматически возвращается на баланс.

Нет нужного сервиса? Нажмите Добавить сервис на странице аренды — мы рассмотрим его добавление.

Нужен не только код, а Gmail-аккаунт, в который можно войти? Смотрите Gmail-аккаунты на короткий срок · Возврат и гарантия