Как поднять свой сервис временной почты на инфраструктуре Cloudflare
Знакомая ситуация: нужно протестировать регистрацию в зарубежном сервисе или просто скачать PDF-ку, которая требует e-mail, а светить основным ящиком не хочется. Обычно мы идем на сайты вроде 10MinuteMail, но там домены часто забанены, а интерфейс обвешан рекламой так, что кнопки не найти.
Недавно наткнулся на репозиторий cloudflare_temp_email, который позволяет развернуть собственный аналог таких сервисов. Самое приятное здесь — проект живет полностью внутри бесплатного лимита Cloudflare.
Что это такое и зачем оно нужно
По сути, это готовый стек для работы с почтой через Cloudflare Workers и Email Routing. Автор собрал воедино фронтенд на Vue 3 и бэкенд, который умеет принимать, хранить и даже отправлять письма.
Это не просто скрипт-заглушка. Проект предлагает полноценную панель управления, поддержку нескольких языков и даже интеграцию с Telegram. Если у вас есть лишний домен или поддомен, привязанный к Cloudflare, вы получаете приватный сервис временной почты, где домены еще не успели попасть в черные списки крупных площадок.
Техническая начинка
Меня зацепило, как автор подошел к вопросу производительности. Вместо того чтобы мучить Node.js парсингом тяжелых MIME-структур, он затащил в проект Rust.
- Rust + WASM для парсинга. Почтовые сообщения — это зоопарк кодировок и форматов. Для их разбора используется
mail-parser-wasm. Это работает быстрее и стабильнее стандартных JS-библиотек, особенно когда в письме много вложений. - Cloudflare D1. В качестве базы данных используется SQLite-решение от самих Cloudflare. Это удобно: не нужно настраивать внешние инстансы PostgreSQL или мучиться с KV-хранилищем для структурированных данных.
- Workers AI. Проект умеет автоматически вытаскивать коды подтверждения и ссылки для активации из текста писем с помощью нейросетей. Фича на любителя, но выглядит эффектно.
Что умеет этот сервис
Кроме очевидного «принять письмо», здесь есть несколько функций, которые редко встретишь в опенсорсных аналогах:
- Отправка писем. Поддерживается работа через SMTP или сервис Resend. Можно не только получать подтверждения, но и отвечать на них.
- Управление вложениями. Письма с файлами не «ломают» интерфейс. Вложения можно сохранять в S3-совместимое хранилище или Cloudflare R2.
- Авторизация через Passkey и OAuth2. Можно настроить вход через GitHub или Authentik, чтобы вашим сервисом не пользовался кто попало.
- Telegram Bot. Пожалуй, самая полезная часть для повседневного использования. Бот присылает уведомления о новых письмах прямо в мессенджер, там же можно прочитать текст или забрать код.
Как это развернуть
Процесс максимально упрощен. В репозитории есть кнопка "Deploy to Cloudflare Workers", которая прокидывает нужные настройки.
Основные шаги выглядят так:
- Форкаете репозиторий.
- Настраиваете Cloudflare Email Routing на свой домен.
- Создаете базу D1 в панели Cloudflare.
- Деплоите фронтенд через Pages и бэкенд через Workers.
Автор подготовил подробную документацию, хотя местами она на китайском (Google Translate справляется отлично). Есть даже готовые воркфлоу для GitHub Actions, чтобы деплой происходил автоматически при пуше в ваш форк.
Стоит ли пробовать
Если вам нужен надежный инструмент для личного пользования, чтобы не зависеть от публичных сервисов — однозначно да. Проект активно развивается: коммиты прилетают часто, а количество звезд перевалило за 6 тысяч, что для такого узкого инструмента очень прилично.
Из минусов могу отметить некоторую избыточность. Если вам нужно просто пересылать письма на основной ящик, хватит и стандартного Email Routing. Но если нужен именно интерфейс, архив писем и возможность отвечать, то cloudflare_temp_email — одно из самых продуманных решений на текущий момент.
Для тех, кто хочет просто потыкать интерфейс перед установкой, у автора есть демо-версия. Только помните, что это публичный инстанс, и конфиденциальные данные туда лучше не слать.
Кому подойдет:
- Разработчикам, которым нужно много тестовых аккаунтов.
- Тем, кто заботится о приватности и хочет свой "чистый" домен для регистраций.
- Любителям экосистемы Cloudflare, желающим посмотреть на реальный пример использования D1 и WASM в воркерах.
