- 01Возьмите адрес выше.
Он уже существует — ничего создавать и подтверждать не нужно.
- 02Вставьте его
в форму регистрации, которая просит электронную почту.
- 03Код появится здесь
крупно, с кнопкой копирования. Открывать и читать письмо не придётся.
Для ваших автоматических тестов
Тот же сервис даёт API. Важный маршрут — wait: он блокирует до прихода письма, вместо того чтобы заставлять вас угадывать длительность sleep в сквозных тестах.
- wait ждёт, пока письмо не придёт. Больше никаких
sleep()в тестах. - Код и ссылки приходят уже извлечёнными, в полях JSON.
- Вебхуки и собственный домен в тарифе «Разработчик».
Тысяча вызовов в месяц, без карты. Достаточно, чтобы встроить его в свои тесты и посмотреть, держится ли.
// Playwright — полная регистрация вместе с кодом const { address, id } = await sink.createInbox(); await page.fill('#email', address); await page.click('#signup'); const code = await sink.waitForOtp(id); // разблокируется, когда письмо придёт await page.fill('#code', code); // код уже извлечён
// cypress.config.js — setupNodeEvents on('task', { createInbox: () => sink.createInbox(), waitForOtp: (id) => sink.waitForOtp(id, { timeout: 45000 }), }); // signup.cy.js cy.task('createInbox').then(({ id, address }) => { cy.get('#email').type(address); cy.get('#signup').click(); cy.task('waitForOtp', id).then((code) => cy.get('#code').type(code)); });
import requests, os API = "https://inboxsink.com/v1" H = {"Authorization": f"Bearer {os.environ['INBOXSINK_API_KEY']}"} box = requests.post(f"{API}/inboxes", headers=H).json() driver.find_element(By.ID, "email").send_keys(box["address"]) msg = requests.get(f"{API}/inboxes/{box['id']}/wait", params={"timeout": 45000}, headers=H, timeout=55).json() code = msg["message"]["otp"] # '204815'
curl -X POST https://inboxsink.com/v1/inboxes \ -H "Authorization: Bearer $KEY" → { "id": "42", "address": "9f2c1a@mailhusk.com" } curl "https://inboxsink.com/v1/inboxes/42/wait?timeout=45000" \ -H "Authorization: Bearer $KEY" → { "message": { "otp": "204815", "link": "https://…/confirm" } }
Цены
Одноразовый ящик остаётся бесплатным и без аккаунта, навсегда. Платят за автоматизацию: API, собственные домены и срок хранения.
- Мгновенный одноразовый адрес
- Извлечённый код подтверждения
- Хранение 1 час
- Общий домен
- Без API
- Полное API, включая wait
- 10 000 вызовов API в месяц
- 1 собственный домен
- Вебхуки
- Хранение 30 дней
Оплата картой через Stripe. Отмена в один клик из панели управления.
Бесплатный аккаунт включает ключ API с лимитом в тысячу вызовов в месяц — достаточно, чтобы оценить без обязательств. Карта не требуется.
Эти ящики только принимают. Ответить с одноразового адреса нельзя, и это сделано намеренно: такое письмо всё равно никуда бы не дошло.
Внешние изображения в письмах блокируются по умолчанию. HTML отображается изолированно, без скриптов и без доступа к странице.
Час — и стёрто. Ни архива, ни резервной копии, ничего, что можно было бы потребовать у нас позже.
Зачем платить за собственный домен?
Потому что формы регистрации отклоняют известные одноразовые домены. Ваш собственный домен нигде не публикуется, а значит не попадает ни в один чёрный список, и ваши тесты продолжают проходить. Это единственный устойчивый способ удержать такие тесты на плаву.
Можно ли ответить с одноразового адреса?
Нет, и мы предпочитаем сказать это прямо, а не давать кнопку, которая не работает: письмо с одноразового домена почти любой провайдер отклонит или отправит в спам. На вашем домене, с вашей репутацией, дело другое — напишите нам.
Что происходит с полученной почтой?
Она удаляется по истечении срока ящика: час на бесплатном тарифе, до тридцати дней в зависимости от плана. Сверх этого нет ни архива, ни резервной копии.
Ваш следующий тест регистрации может пройти с первого раза.
Бесплатный ключ API за тридцать секунд. Переходите на платный тариф, когда вашим тестам понадобится домен, который никто не блокирует.
Потом, когда ваши тесты начнут отклонять: собственный домен нигде не публикуется, а значит не попадает ни в один чёрный список — 29 € в месяц.