Короткий ответ, и та половина, что удивляет людей
5 дней. Это весь ответ, за которым сюда приходит большинство, и стоит точно понимать, на какой именно вопрос он отвечает: письмо читается 5 дней. Адрес, на который оно пришло, вообще не истекает, потому что истекать там нечему.
Это две разные вещи, и если их смешать, получаются оба сообщения, которые мы слышим по этому поводу: «мой адрес перестал работать» — хотя это не так, и «а можно подержать это подольше» — а рычага для этого попросту нет.
- Письмо
- Читается 5 дней от собственной метки времени, потом исчезает. Тело, заголовки, превью и вложения — всё в один и тот же момент.
- Адрес
- Не истекает никогда, потому что о нём нигде не остаётся записи. Это просто строка. Она срабатывает при первом использовании и точно так же сработает через год.
- Почтовый ящик
- Строка, которая ведёт учёт одного адреса, создаётся первым письмом, попавшим на него, и удаляется, когда уходит последнее. Вы никогда не создаёте и не удаляете её сами.
Одно окно, одинаковое для всех: бесплатный тариф или платный, публичный домен или свой собственный. Это не функция тарифа, и нигде нет настройки, которая бы его меняла.
Когда на самом деле запускается отсчёт
Крайний срок вычисляется один раз, в момент доставки письма, и записывается в ту же строку. После этого его никто не пересчитывает — при чтении не сверяются ни с какой политикой, не смотрят на тариф, и открытие письма не перезапускает никакой отсчёт.
Стоит знать, от чего именно он считается. Письмо несёт собственный заголовок Date, записанный тем, кто его отправил, и именно от него начинаются 5 дней — но только пока ему можно верить.
- Заголовок отстоит от текущего момента не больше чем на сутки. Он принимается как есть. Почти каждое письмо попадает именно в этот случай, и для них окно идёт 5 дней с момента, когда отправитель нажал «отправить».
- Заголовок отклоняется дальше этого предела в любую сторону. Тогда его игнорируют и берут время получения вместо него. Отправитель может написать в письме любую дату, хоть из следующего века, а письмо, которое никогда не истекает, — это письмо, которое никогда никуда не уходило.
- Пригодного заголовка вообще нет. Тот же результат: время получения.
Это может стоить вам только часов, и только в одну сторону — письмо может прийти уже с чуть меньшим остатком, чем 5 дней, но никогда — с большим. Письмо, которое двадцать часов просидело где-то в очереди, прежде чем попасть к нам, придёт с остатком около четырёх дней и четырёх часов.
Что уходит вместе с ним, а что остаётся
Когда у письма наступает крайний срок, всё, что ему принадлежит, уходит разом. Ничего не придерживается в другой таблице, и ничего не остаётся даже в урезанном виде — ни заглушки, ни сохранённой для истории темы письма, ни миниатюры файла.
| Что | Что с этим происходит | Когда |
|---|---|---|
| Письмо | Текст, HTML, заголовки и превью — удаляются вместе. | В свой крайний срок |
| Его вложения | Удаляются и с диска, и из базы данных. Добраться до файла можно только через письмо, которое его принесло, поэтому пережить его файл не может. | Вместе с письмом |
| Отметка о прочтении | Это столбец у самого письма, а не отдельная сущность. Она исчезает, когда исчезает строка. | Вместе с письмом |
| Запись о почтовом ящике | Строка, которая учитывает содержимое одного адреса, удаляется, как только уходит последнее письмо в нём. Она существует потому, что пришла почта, и не переживает эту почту. | Вместе с последним письмом |
| Адрес | Удалять нечего. Он никогда не хранился как нечто, что может начать или перестать существовать. | Никогда |
| Алиас, через который шла почта | Сохраняется. Это единственная нить, которая говорит, какому сервису какой адрес был выдан, а это стоит дороже, чем сама строка. | Никогда |
| Алиас, через который ничего не шло | Удаляется после 5 дней простоя — и вычисляется заново, точно так же, при следующем использовании адреса. Алиас выводится из адреса, а не присваивается ему, поэтому выбросить неиспользуемый — ничего не потерять. | После 5 дней простоя |
| MX-запись вашего собственного домена | Ваша, в вашем DNS, и всё это её не касается. Срок хранения — это про почту, а не про маршрутизацию. | Никогда |
Файлы вложений отвязываются раньше, чем удаляются их строки, и порядок здесь выбран намеренно: сбой между этими шагами оставит строки, чьи файлы уже ушли, — и следующий проход их подчистит. Обратный порядок оставил бы файлы, на которые никто не ссылается, и за ними уже никто и никогда бы не вернулся.
Сначала нечитаемо, потом удалено
Это два разных события, и они не совпадают. По расписанию, на которое можно полагаться, идёт только первое, и только его вы можете наблюдать.
Каждое чтение здесь фильтруется по крайнему сроку. Список писем в ящике, открытие одного письма, скачивание одного вложения — все три несут одно и то же условие, и письмо, которое вышло за пределы своего окна, не подходит ни под одно из них. Не бывает промежутка, в котором почта «формально ещё тут»: в ту же секунду, когда срок истекает, письмо пропадает со страницы ящика, из API и с MCP-сервера одновременно.
То, что происходит после этого, — уборка. Проход забирает строку и файлы пакетами ограниченного размера, в темпе, подобранном так, чтобы разбор накопившегося никогда не вставал в очередь перед новой почтой. От того, как скоро он доберётся до конкретного письма, ничего заметного не меняется.
- Крайний срок
- Условие в каждом запросе, который мог бы вернуть письмо. Точное и одинаковое в ящике, в API и на MCP-сервере, потому что все три задают один и тот же вопрос.
- Уборка
- Ограниченная по объёму работа, которая забирает то, что уже недостижимо. Никогда не то, чего ждёт читающий, и никогда не то, что решает, можно ли что-то прочитать.
Именно поэтому на вопрос «удалено это или только скрыто?» ответ — «и то, и другое, в этом порядке» — и поэтому неважно, какое из двух уже произошло к моменту, когда вы спрашиваете.
Как прочитать крайний срок прямо из письма
Вычислять дату самому никогда не нужно. Каждое письмо, которое возвращает API, несёт крайний срок, присвоенный ему при доставке, — в виде метки времени ISO 8601 по UTC.
$ curl -sG https://grabmail.io/api/v1/mailbox \
--data-urlencode "address=you@grabmail.io"У каждого письма в ответе есть обе границы его собственного окна:
{
"id": "01k4h2v9r7m3d8f0b6n5c1qtzx",
"from": "no-reply@example.com",
"subject": "Confirm your email address",
"date": "2026-09-01T09:00:00+00:00",
"seen": false,
"attachments": 0,
"expires_at": "2026-09-06T09:00:00+00:00"
}date — это то, от чего начался отсчёт, а expires_at — где он заканчивается. Вычтите одно из другого — и каждый раз получится 5 дней: это самый быстрый способ убедиться, что ничего из сделанного вами между ними ничего не сдвинуло.
expires_at- Момент, когда письмо перестаёт быть читаемым. Абсолютное время, в UTC, со смещением, выписанным полностью, а не буквой «Z» в конце.
date- Собственная метка времени письма — ей верят, если она отстоит от прихода не больше чем на сутки, и незаметно заменяют временем прихода, если это не так.
Запросите письмо, у которого уже прошёл крайний срок, — и получите ровно тот же ответ, что и для письма, которого никогда не существовало:
{"error":"not_found","message":"no such message in that mailbox, or it has expired"}API не скажет, какой из двух случаев это был, и это не недосмотр. Если бы их можно было различить, 404 превратился бы в способ подтвердить, что какой-то конкретный id когда-то существовал, — а это вопрос, который никто за пределами ящика не должен уметь задать.
Как сохранить то, за чем вы на самом деле пришли
Почти ничему из того, что попадает на одноразовый адрес, не нужно его переживать. С горсткой исключений стоит разобраться заранее, а не обнаружить их на шестой день.
- Код, ссылка или временный пароль. Используйте сразу. Это и так самое недолговечное, что есть в письме, — большинство ссылок подтверждения перестают работать задолго до истечения 5 дней, и обычное дело — когда письмо переживает ссылку, а не наоборот.
- Файл. Скачайте его, пока письмо на месте. Письмо целиком ограничено 5 MB, так что это никогда не большая операция, и файл уходит в тот же миг, что и письмо.
- Чек или счёт. Единственный случай, когда одноразовый адрес — это просто не тот инструмент. Положите его туда, где вы храните важное, или используйте адрес, который храните вы сами.
- Всё, что произвёл набор тестов. Проверяйте это в том же прогоне, который это произвёл. Задача, которая читает ящик от вчерашнего запуска, — это задача, которая начнёт флакать в первый же понедельник после длинных выходных.
- Доказательство того, что вам прислал сервис. Заберите это из ящика в тот же день, когда оно пришло. Экспорта здесь нет, и ничего не записывается дважды.
Удалять раньше срока, и почему это стоит делать скрипту
Ждать — не единственный способ, которым письмо уходит. Один вызов удаляет одно письмо, и это происходит сразу, а не при какой-то будущей уборке.
$ curl -sX DELETE -G https://grabmail.io/api/v1/message/01k4h2v9r7m3d8f0b6n5c1qtzx \
--data-urlencode "mailbox=you@grabmail.io"Для человека это просто аккуратность. Для скрипта это больше похоже на бухгалтерию: пустой ящик — самое простое из возможных утверждений, что всё, что там было, уже обработано, и поддерживать его в силе ничего не стоит. Альтернатива — список уже обработанных id — это список, которому нужно где-то храниться, куда-то записываться и кем-то вычищаться.
Это никак не меняет окно для всего остального, да и не должно: всё, что вы оставите, уйдёт само.
Удаление последнего письма в ящике убирает вместе с ним и запись о самом ящике — точно так же, как это сделало бы истечение срока. В конечном состоянии нет разницы между тем, чтобы удалить письмо, и тем, чтобы дождаться его исчезновения, — есть разница только в том, когда это произойдёт.
Почему 5 дней, а не тридцать
Честная причина — не место на диске. Дело в том, что на публичном домене адрес и есть секрет: прочитать ящик может любой, кто его знает, и именно это свойство позволяет пользоваться им без аккаунта, пароля или собственной почты для подтверждения. Поэтому срок хранения — это не ручка щедрости. Это размер зоны поражения.
- 5 дней достаточно для всего, для чего этот сервис на самом деле нужен: код подтверждения, ссылка на скачивание, тестовый прогон, чек, который вы вот-вот перенесёте куда-то ещё.
- И этого достаточно мало, чтобы адрес, который вы вписали в форму в марте, не хранил ничего ещё в апреле, — кому бы его с тех пор ни отдали.
- Это одинаково для всех, поэтому здесь нет настройки, которую можно ошибочно задать, и нет тарифа, на котором ваша почта незаметно переживёт то, что вы от неё ожидали.
Если вы хотите, чтобы сам адрес тоже оставался в секрете, для этого и существует алиас: раздавайте алиас, читайте по адресу. Кто угодно, кто попробует зайти по алиасу, всегда найдёт пустой ящик, а руководство о регистрации без настоящего адреса раскладывает этот приём по полочкам.
А если вам нужно более долгое окно для почты, которую вы контролируете, ответ — это ящик, который контролируете вы, а не более длинная настройка здесь. Если направить сюда собственный домен, окно тоже не изменится — изменится то, кому принадлежат адреса, а это другая и куда более правильная вещь, которую стоит поправить.
Когда письмо уже пропало
Пробовать нечего. Стоит сказать это прямо, потому что у любого другого почтового сервиса, которым вы пользовались, где-то есть корзина, и рефлекс — пойти искать такую же здесь.
- Нет архива
- На выходе ничего никуда не копируется.
- Нет корзины
- Между «читается» и «пропало» нет промежуточного состояния, и нет ничего, что подержало бы письмо какое-то время.
- Нет заявки
- Нет такого действия оператора, которое вернуло бы истёкшее письмо. У каждого пути, способного прочитать письмо, — один и тот же крайний срок, включая те пути, которыми пользовались бы мы сами.
То, что действительно стоит сделать, — самое обычное: попросить отправителя ещё раз. Письмо для подтверждения, ссылку на скачивание и чек любой сервис перевыпустит по запросу, обычно прямо со страницы, на которой вы уже находитесь. Если старый адрес успел куда-то разойтись, сначала откройте новый.
А если то, чего вы ждали, вообще никогда не приходило, вам не сюда — руководство о почте, которая не доходит разбирает причины в том порядке, в котором их стоит проверять, начиная с той, что занимает десять секунд.
На практике
Всё это целиком, как рабочая привычка:
- Откройте адрес и пользуйтесь им. Активировать нечего, и ничего не начинает отсчёт.
- Сделайте то, ради чего вы его открыли — код, ссылку, файл — пока вы ещё здесь.
- Всё, что собираетесь сохранить, забирайте из ящика в тот же день, когда оно пришло.
- Если ящик читает скрипт, пусть он ветвится по
expires_at, а не по числу попыток. - Удаляйте то, с чем закончили, — хотя бы для того, чтобы ящик показывал, что ещё осталось сделать.
- Возвращайтесь на тот же адрес когда угодно. Он будет на месте, и он будет пустым.
Именно последнюю строчку стоит запомнить. Адрес постоянен, а почта — нет, и это ровно наоборот по сравнению с любым ящиком, который у вас уже есть, — и именно поэтому этот не стоит ничего и ничего не просит.
Вопросы
Можно ли вернуть письмо после 5 дней?
Нет. Нет ни архива, ни корзины, ни действия оператора, которое бы его вернуло, — у каждого пути, способного прочитать письмо, один и тот же крайний срок, так что возвращаться письму попросту неоткуда.
Сбрасывает ли отсчёт открытие или чтение письма?
Нет. Крайний срок записывается один раз, при доставке, и его никто не пересчитывает. Чтение, отметка «прочитано», обновление страницы и повторный просмотр списка писем в ящике оставляют его ровно там же, где он был.
Истекает ли адрес, если перестать им пользоваться?
Нет, потому что он не хранится как нечто, способное истечь. Адрес превращается в строку только пока в нём есть почта, и эта строка исчезает вместе с почтой. Наберите тот же адрес хоть через полгода — он сработает: пустой и готовый к использованию.
Можно ли заплатить за более долгий срок хранения?
Нет. Окно одно, и оно одинаково для любого адреса, любого домена и любого тарифа. Это нигде не настройка, и служба поддержки не может поднять его для отдельного аккаунта.
Живут ли вложения столько же, сколько само письмо?
Ровно столько же, и ни секундой дольше. Добраться до файла можно только через письмо, которое его принесло, и уходят они в один и тот же момент. Руководство о вложениях рассказывает о потолке размера и о том, как забрать файл, пока он ещё на месте.
Что если дата отправителя неверна?
Заголовок Date, который отстоит от момента прихода письма больше чем на сутки, игнорируется, и вместо него берётся время прихода. Так что неверная дата может в худшем случае стоить письму нескольких часов его окна — но никогда не может его продлить.
Моя почта удаляется или только скрывается после крайнего срока?
И то, и другое, в этом порядке. Она перестаёт быть читаемой в крайний срок — это условие в каждом запросе — а байты позже освобождает уборка, которую никто не ждёт. Ни из одного из этих состояний ничего прочитать нельзя.
Освобождает ли удаление письма адрес немедленно?
Письмо исчезает немедленно, и вместе с последним письмом исчезает запись о ящике. Но адрес изначально никем не удерживался, так что освобождать нечего — он был доступен вам всё это время, как и любому другому, кто его угадал.
Как поддерживать ящик живым для долгого теста?
Не нужно: адрес не нуждается в поддержании жизни, истекает только почта. На самом деле долгому набору тестов нужен свежий адрес на каждый прогон, а именно это строит руководство о сквозном тестировании проверки email: ящик, общий на несколько дней, — это ящик, где вчерашнее письмо всё ещё подходит под сегодняшнюю проверку.


