Как устроен сервис временной почты: путь письма от SMTP до вашего экрана
Команда PureTempMail
Инженеры, которые создают и поддерживают PureTempMail
Зачем мы показываем свой конвейер
Большинство сервисов одноразовой почты — чёрные ящики. Вы вводите адрес, письма появляются, а что происходит между этими двумя моментами — неизвестно: кто видит сообщения, где они хранятся и удаляются ли на самом деле. Поскольку честный ответ на вопрос «можно ли доверять сервису временной почты?» целиком зависит от этих деталей, мы решили задокументировать, как именно работает PureTempMail — компонент за компонентом.
Всё, что описано ниже, — это продакшен-система, которая обслуживает этот сайт прямо сейчас. Текст написан командой, которая её построила и эксплуатирует, а не упрощённая маркетинговая схема. Там, где мы шли на компромисс, мы говорим, какой он и почему.
Шаг 1. SMTP-рукопожатие — где погибает большинство мусора
Каждое письмо в интернете начинается с SMTP-диалога. На нашей границе работает защищённый SMTP-сервер, слушающий порт 25 с поддержкой TLS для отправителей, которые его умеют. Когда почтовый сервер подключается и называет получателя, мы не принимаем сообщение вслепую.
На этапе RCPT TO — ещё до передачи хотя бы одного байта содержимого — мы сверяем адрес получателя со списком активных ящиков. Если такой адрес никто не создавал или его ящик уже истёк, соединение сразу отклоняется постоянной SMTP-ошибкой. Мы никогда не принимаем письмо, чтобы молча выбросить его. Это раннее отклонение отражает и осознанное проектное ограничение: PureTempMail работает только на приём. Отправить письмо с адреса PureTempMail невозможно, а значит, сервис нельзя использовать для спама, фишинга или травли.
Шаг 2. Очередь между приёмом и обработкой
Принятое сообщение не разбирается внутри SMTP-сервера. Вместо этого «сырое» письмо отправляется в очередь сообщений, и SMTP-диалог немедленно завершается. Причина — во времени: отправляющие серверы ждут ответа за секунды, а разбор большого письма с вложениями может занять заметно дольше. Разделение этих этапов означает, что всплеск входящей почты никогда не приводит к таймаутам или потере писем — очередь поглощает пик, а обработчик разбирает его постепенно.
Этот обработчик разбирает MIME-структуру: извлекает тему, отправителя, HTML- и текстовую версии письма и вложения. Вложения записываются в изолированное хранилище под случайно сгенерированными именами — никогда под именем файла, которое выбрал отправитель, что закрывает целый класс атак через манипуляцию путями. Метаданные и тела сообщений попадают в базу данных и привязываются к сроку жизни ящика.
Шаг 3. Санитизация HTML: маркетинговые письма не смогут вас отследить
HTML-письма — самая опасная часть любого почтового ящика. Типичное маркетинговое сообщение содержит внешние изображения (пиксели-трекеры, сообщающие, когда и где вы его открыли), внешние таблицы стилей, а иногда и скрипты. Прежде чем письмо будет показано вам, мы прогоняем его через HTML-санитайзер со строгим белым списком: скрипты вырезаются, внешние ресурсы удаляются полностью, выживают только безопасные встроенные стили. Пиксель-трекер просто никогда не загружается, поэтому отправитель не узнает, было ли письмо открыто.

Очищенный результат затем отображается внутри полностью изолированного (sandboxed) iframe в вашем браузере. Даже если бы что-то вредоносное пережило санитизацию, песочница не даст ему добраться до окружающей страницы, вашей сессии или чего-либо ещё в браузере.
Шаг 4. Доставка в реальном времени через Server-Sent Events
Большинство сайтов временной почты заставляют обновлять страницу или опрашивать сервер каждые несколько секунд. PureTempMail держит из вашего браузера одно долгоживущее HTTP-соединение по технологии Server-Sent Events (SSE). Как только обработчик заканчивает сохранение сообщения, по этому соединению отправляется событие, и письмо появляется в ящике — обычно через одну–три секунды после отправки. Для критичных ко времени сценариев — кодов двухфакторной аутентификации и ссылок активации с коротким сроком действия — эти секунды имеют значение.
Соединение передаёт периодические heartbeat-сигналы, чтобы обнаруживать разорванные соединения, а клиент автоматически переподключается с экспоненциальной задержкой при сбоях сети. Тот же поток событий питает наши приложения для Android и iOS, поэтому все платформы видят новое письмо в один и тот же момент.
Шаг 5. Истечение срока — это настоящее удаление
Каждый ящик создаётся с видимым на экране таймером обратного отсчёта, и пока он жив, срок можно продлить. Когда ящик истекает, за дело берётся задача очистки, запускающаяся каждые несколько минут: сначала с диска удаляются файлы вложений, затем каскадно удаляются строки базы данных для ящика и всех его сообщений.
Нет ни архива, ни резервных копий истёкшей почты, ни флага «мягкого удаления», незаметно сохраняющего данные. Это минимизация данных, обеспеченная архитектурой, а не только политикой: мы не можем выдать, утечь или потерять то, чего больше не существует.
Вот и весь путь: SMTP-рукопожатие, очередь, парсер, санитайзер, push-событие и задача удаления. Каждый этап существует ради того, чтобы адрес, которым вы пользуетесь десять минут, ничего не стоил вам после. Если вы когда-нибудь усомнитесь, не делает ли сервис одноразовой почты что-то сомнительное с вашими письмами, — попросите его опубликовать свой конвейер. Мы только что это сделали.
Предпочитаете короткую нетехническую версию этого конвейера? Посмотрите, как PureTempMail работает шаг за шагом