Начните с проверки за одну минуту
Прежде всего сделайте эти четыре шага. Вместе они объясняют большинство пропавших писем с подтверждением, и каждый занимает не больше времени, чем чтение этого предложения.
- Сверьте адрес посимвольно. Не тот, что у вас в голове, — тот, что реально открыт перед вами, против того, что реально введён в форму.
rnиm,lи1, лишняя точка, пропущенная точка: адрес, отличающийся на один символ, — это совершенно исправный чужой ящик, а не ваш. - Проверьте, какой домен вы использовали. Доступны три публичных домена, и одно и то же имя перед каждым из них — это три разных ящика.
k7fq2m@grabmail.ioиk7fq2m@mixozia.comникак не связаны между собой. - Убедитесь, что вы смотрите не в алиас. Алиас — это адрес, который вы раздаёте другим; ящик же открывается под адресом, который вы оставляете себе. Проверка алиаса всегда покажет пустой ящик — не потому, что письмо задерживается, а потому, что под ним никогда ничего не хранится.
- Попросите сайт отправить письмо ещё раз. У большинства форм регистрации есть ссылка для повторной отправки, и это ничего не стоит. Если второе письмо приходит мгновенно, первое потерялось на стороне отправителя, и здесь расследовать нечего.
Сколько должно идти письмо с подтверждением
Обычно письмо с подтверждением появляется через две-три секунды после нажатия кнопки. Вот что означает более долгое ожидание:
| Сколько времени прошло | Что происходит, скорее всего | Что делать |
|---|---|---|
| Меньше 5 секунд | Норма. Письмо ещё в пути по сети. | Ничего. Ящик обновится сам. |
| От 5 до 60 секунд | Отправляющая сторона поставила письмо в очередь — загруженный провайдер или рассылка, которая запускается раз в минуту. | Подождите. |
| От 1 до 5 минут | Отправитель ограничивает скорость, повторяет попытку или держит письмо в очереди модерации. | Запросите повторную отправку — один раз. Если пропадут оба письма, это говорит о куда большем, чем пропажа одного. |
| Больше 5 минут | Дело не в задержке, а в сбое. | Разберите остальные пункты этого руководства. |
Одна задержка бывает и по нашей вине, и о ней стоит знать. Если наш слой хранения недоступен, почтовые серверы принимают и удерживают всё, что приходит, вместо того чтобы отклонять, и доставляют это, как только слой снова в строю, — в пределах 5 дней. Отправляющий сервер никогда не получает окончательный отказ из-за проблемы на нашей стороне, потому что такие отказы отправители не повторяют. Поэтому письмо, которое действительно задержалось, всё равно дойдёт.
Вы проверяете не тот ящик
Это самая частая причина и самая незаметная: адрес с одной ошибкой в написании — это совершенно исправный ящик, в который просто никто ничего не отправлял. Заметить тут нечего, потому что заранее здесь не создаётся ничего. Вот шесть вариантов, как это происходит:
- Опечатка — с любой стороны
- В форму ввели один вариант, а в ящик проверяют другой. Копируйте и вставляйте адрес в обе стороны, а не набирайте его по памяти с экрана.
name+tag@— это неname@- Плюс-адресация здесь открывает отдельный ящик, а не помечает тегом уже существующий. Это сделано намеренно — тегами люди разделяют регистрации между собой, — но значит это и то, что
shop+aug@grabmail.ioникогда не появится вshop@grabmail.io. Открывайте адрес ровно так, как вы его набрали, вместе с тегом. - Другой публичный домен
- Одно и то же имя на
grabmail.io,mixozia.comиlinqmail.com— это три никак не связанных ящика. Общего между ними ничего нет. - Алиас, а не адрес
- Алиас доставляет письма в ящик, но прочитать их через него нельзя. Вставьте алиас туда, где проверяете почту, и он останется пустым навсегда, сколько бы писем ни пришло.
- Услужливый телефон
- Автозамена и автозаглавные буквы переписывают адрес прямо во время ввода. Заглавные буквы не страшны — здесь всё приводится к нижнему регистру, — а вот слово, изменённое автозаменой, это уже другой адрес.
- Чужой ящик, ненадолго
- Короткие, очевидные имена на публичном домене достаются всем, кому они приходят в голову. Если вы использовали
test@илиhello@, кто-то другой мог открыть ваше письмо или удалить его раньше, чем вы туда заглянули.
Сайт вообще не отправил письмо
Это стоит исключить в первую очередь: что бы вы ни делали на своей стороне, это не поможет. Формы регистрации отказывают молча куда чаще, чем принято думать:
- Аккаунт уже существует. Многие сайты отвечают «мы отправили вам ссылку» независимо от того, новый это адрес или нет, а если не новый — не отправляют ничего. Это осознанная защита от массового сбора адресов, и практика хорошая, — но со стороны она неотличима от потерянного письма.
- Адрес отклонили уже после того, как форма поблагодарила за регистрацию. Некоторые чёрные списки проверяются в момент отправки письма, а не в момент заполнения поля.
- Отправка идёт по расписанию. Рассылка раз в пять-десять минут — обычное дело для небольших сайтов, и на странице об этом никак не предупреждают.
- Их провайдер отклонил письмо. Уведомление об отказе уходит им, а не вам, и до живого человека оно доходит не всегда.
- Превышен лимит повторных отправок. Три запроса за минуту — и четвёртый отбрасывается без каких-либо объяснений.
Отличить всё это от проблемы с доставкой можно одним тестом, и он займёт минуту: получите на тот же адрес что-нибудь ещё. Подойдёт форма «забыли пароль» с любого другого сайта. Если это письмо приходит, а подтверждение — нет, дело в отправителе, и никакое ожидание этого не изменит.
Сайт отклоняет одноразовые адреса
Многие сервисы ведут списки доменов одноразовой почты, и публичные домены отсюда в них тоже есть. Это единственная причина, которая сама собой не проходит, поэтому её стоит распознать быстро. Проявляется она в двух видах, и только один из них честно показывает, что происходит.
| Что вы видите | Что происходит на самом деле | Что это значит для вас |
|---|---|---|
| «Введите действительный email-адрес» — ещё до отправки формы | Домен есть в списке, который форма проверяет прямо во время ввода. | По крайней мере это видно. Попробуйте другой публичный домен или адрес на собственном домене. |
| Форма принимает адрес, но письмо так и не приходит | Принят при регистрации, а отброшен уже при отправке письма — либо отправлен в очередь модерации, которую никто не разбирает. | Тихий сбой. Именно на нём люди теряют полдня, прежде чем заподозрить, в чём дело. |
| В прошлом месяце работало, а сегодня — нет | Обновился список. Вы тут ни при чём. | Стабильно работает только адрес, о котором списки ещё не знают. |
Способа разблокировать заблокированный домен не существует, а любой сервис, обещающий «временную почту, которая работает везде», — это просто список, который ещё не успели обновить. Работает только адрес, которого нет ни в одном списке, — об этом следующий раздел.
Подробнее об этом, включая то, что именно проверяют такие списки, — в руководстве о регистрации без настоящего адреса.
Решение, которое снимает проблему целиком
Одна MX-запись на домене, которым вы уже владеете, превращает любой адрес на нём в ящик здесь. Это бесплатно, занимает несколько минут и сразу снимает три причины из перечисленных выше:
- О нём не знает ни один чёрный список. Ваш домен нигде на этом сайте не публикуется, так что фильтру не с чем его сверять.
- Его никто не подбирает. Публичные домены упомянуты здесь на каждой странице; ваш — нет, поэтому даже короткий адрес на нём не достанется посторонним.
- Отдельный адрес под каждый сервис, без пересечений. Сегодня
forum@, завтраshop@— оба на домене, которым пользуетесь только вы, и как только один из них начинает получать спам, вы точно знаете, кто его продал.
Сама запись — это одна строка, и её публикация целиком служит доказательством владения: создавать аккаунт и что-то подтверждать не нужно:
MX-запись для вашего домена10 smtp.grabmail.io
Полная инструкция здесь: сама запись, что доказывает её публикация и честные ограничения ящика без пароля.
Когда ответа ждёт не человек, а тестовый скрипт
Всё сказанное выше по-прежнему применимо, плюс три сбоя, которые задевают только скрипты:
- Пустой ящик — это не ошибка
- Здесь ничего не создаётся заранее, поэтому адрес, на который никогда ничего не приходило, отвечает
200сcount: 0и пустым списком.404получают только домены, которые мы не обслуживаем. Код, который считает «пусто» ошибкой, сдаётся за секунду до того, как придёт письмо. - Вы засыпаете вместо того, чтобы опрашивать
- Фиксированный
sleep(5)в удачный день слишком долгий, а в неудачный — слишком короткий. Опрашивайте раз в секунду до заранее заданного времени по часам и завершайте тест с ошибкой по истечении этого срока, а не после фиксированного числа попыток. - Вы превысили лимит запросов
- Один запрос в секунду на адрес. Сверх этого вы получаете
429с заголовкомRetry-Afterв целых секундах. Клиент, который игнорирует этот заголовок и продолжает слать запросы, в итоге ждёт только дольше.
deadline=$(( $(date +%s) + 60 ))
while [ "$(date +%s)" -lt "$deadline" ]; do
n=$(curl -sG https://grabmail.io/api/v1/mailbox \
--data-urlencode "address=$ADDR" | jq '.count')
[ "$n" -gt 0 ] && break
sleep 1
doneКак делать это правильно — отдельное руководство: сквозное тестирование потока проверки email — с помощниками для Playwright и pytest, которые не флакуют, и разбором сбоев, из-за которых это неудобно делать в CI.
Письмо пришло, но его больше нет
Есть три причины, по которым письмо, которое действительно пришло, сейчас перед вами не окажется:
- Истёк срок хранения
- Всё удаляется через 5 дней после доставки — прочитано оно или нет. Отсчёт начинается с момента доставки, и у каждого сообщения есть поле
expires_at, так что клиенту не нужно вычислять эту дату самому. - Кто-то его удалил
- На публичном домене открыть ящик и удалить из него что угодно может любой, кто знает адрес. Если вы использовали короткое, легко угадываемое имя, этим «кем-то» вполне могли быть не вы.
- Вы сами его удалили
- В ящике есть кнопка удаления, а в API — вызов
DELETE. Оба срабатывают мгновенно, и отменить ни один из них нельзя.
Если письма всё ещё нет
Писать в поддержку некуда, и это не грубость, а осознанный выбор: сервис, построенный на неавторизованной одноразовой почте, — не то место, куда стоит отправлять то, что обязательно должно быть прочитано. Поэтому все оставшиеся шаги вы можете сделать сами.
- Проверьте, работает ли сервис. Страница статуса показывает почтовые серверы, API и сайт отдельно друг от друга, поэтому «ничего не приходит» и «сайт тормозит» никогда не перепутаются.
- Попробуйте другой публичный домен. Если один в чёрном списке у отправителя, два других вполне могут в нём не быть.
- Попробуйте адрес на собственном домене. Это разом снимает все чёрные списки, и только этот способ даёт такую гарантию.
- Зайдите другим путём. Войдите через уже существующий аккаунт или по номеру телефона, если сайт вообще это предлагает.
- Признайте, что дело в отправителе. Если письмо откуда угодно ещё приходит в тот же ящик через несколько секунд, значит ящик работает, а это письмо ему просто не передали.
И если это письмо с подтверждением было единственным, что стояло между вами и аккаунтом, который вам действительно важен, — воспримите это как намёк и используйте для него настоящий почтовый ящик. Одноразовый адрес — правильный инструмент для регистраций, которые перестают что-то значить через час, а таких большинство, но эта — не из их числа.
Вопросы
Сколько времени должно идти письмо с подтверждением?
Здесь норма — две-три секунды. Меньше минуты — тоже ничего необычного, это отправляющая сторона поставила письмо в очередь. Больше пяти минут значит, что произошёл сбой, а не задержка, и дальнейшее ожидание почти никогда ничего не меняет.
Нужно ли проверять папку «Спам»?
Нет. Здесь ничего не фильтруется, не сортируется и не отправляется в карантин: на каждый адрес — один ящик, и всё, что в него доставлено, там и лежит. Если письма там нет, значит его и не доставляли, — это заметно сужает поиск.
Сайт говорит, что отправил письмо, а в ящике пусто — почему?
Чаще всего потому, что адрес, который вы проверяете, не совпадает с тем, на который отправляли: опечатка, другой публичный домен, +tag или алиас. Следующая по частоте причина — многие сайты отвечают «отправлено» независимо от того, был ли адрес уже зарегистрирован, а если был, не отправляют ничего.
Почему письмо на name+tag@ не появилось в ящике?
Потому что name+tag@ здесь — отдельный ящик, а не метка на name@. Откройте адрес ровно так, как ввели его в форму, вместе с тегом, — и письмо найдётся.
Блокируются ли какие-то отправители?
Ни один отправитель не фильтруется. Прямо во время SMTP-сессии отклоняются только две вещи, так что отправитель узнаёт об этом сразу, а не остаётся в неведении: письмо больше 5 MB и почта для домена, который мы не обслуживаем. Хост, открывающий неоправданно много соединений, блокируется на десять минут — из-за этого его письма задерживаются, а не теряются.
Форма пишет, что адрес недействителен — это правда?
Адрес вполне действителен — просто домен есть в чёрном списке одноразовой почты. Другой публичный домен иногда проходит, а адрес на собственном домене проходит всегда.
Можно ли вернуть письмо после того, как оно удалено?
Нет. Удаление через 5 дней после доставки — это жёсткий предел, который обеспечивает фоновая задача, а не настройка: экспорта, архива и отмены не предусмотрено. Всё, что должно пережить этот срок, нужно забрать и сохранить у себя.
Ссылка из письма с подтверждением сработает, если открыть её завтра?
Это правило отправителя, а не наше — большинство кодов и ссылок истекают за минуты или часы. Само письмо хранится здесь 5 дней, так что прочитать, что в нём было, можно всегда, даже после того, как ссылка внутри уже перестала работать.
Можно ли ответить на письмо и попросить отправить его снова?
Нет. Этот сервис только принимает почту и никогда её не отправляет: наш SPF — v=spf1 -all, а DMARC — p=reject, так что всё, что якобы приходит с адреса отсюда, — подделка. Вместо этого используйте кнопку повторной отправки на сайте.


