Полноценный почтовый ящик для своего домена на Cloudflare Workers
Каждый раз, когда я регистрирую новый домен для пет-проекта, встает один и тот же вопрос. Что делать с почтой? Покупать Google Workspace или Fastmail ради пары ящиков жалко, платить по шесть долларов за каждого пользователя в месяц не хочется. Поднимать собственный почтовый сервер с Postfix и Dovecot на виртуальной машине? Удовольствие сомнительное. Придется часами настраивать SPF, DKIM, DMARC, бороться с PTR-записями и надеяться, что IP-адрес хостинга не висит в спам-листах.
Недавно наткнулся на проект Mailflare. Автор решил эту дилемму красиво: он создал готовый почтовый клиент и бэкенд, который разворачивается прямо в аккаунте Cloudflare.
Что это такое
Mailflare превращает набор бессерверных сервисов Cloudflare в персональный почтовик. Здесь есть аккуратный веб-интерфейс, поддержка произвольного количества доменов, отправка и прием сообщений, поиск, вложения, общие ящики для команд и система гибких правил.
Вам не нужно администрировать Linux, обновлять пакеты или следить за состоянием демонов. Вся серверная часть работает на бессерверной инфраструктуре.

Как устроена архитектура
Вместо привычной базы данных и фоновых сервисов на сервере проект опирается на стандартные компоненты Cloudflare:
- Входящие письма перехватывает Cloudflare Email Routing. Сервис принимает MX-трафик домена и передает тело сообщения внутрь воркера.
- Логику обрабатывает рантайм Cloudflare Workers. Он запускается мгновенно и не тратит ресурсы в моменты простоя.
- Метаданные, структуру папок, пользователей и сами тексты сообщений Mailflare сохраняет в базу D1. Это распределенный SQLite, работающий на edge-узлах.
- Вложения и тяжелые файлы отправляются в бакет R2, совместимый с API Amazon S3.
Отправка исходящей почты идет через встроенный почтовый сервис Cloudflare. Данные остаются изолированными: письма лежат в вашей персональной базе D1, файлы сохраняются в вашем бакете R2, а доступ к ним есть только у вашего приложения.
Возможности веб-интерфейса
Снаружи Mailflare выглядит как привычный почтовый клиент вроде Gmail. Внутри есть функции, без которых трудно представить повседневную работу с почтой:
- Форматирование текста, подписи, цепочки сообщений и автоответчик.
- Поиск по содержимому, создание пользовательских папок, откладывание писем и архивация.
- Общие ящики с делегированным доступом. Можно дать коллегам доступ к адресу поддержки или общей почте без передачи паролей от учетной записи.
- Правила маршрутизации. Входящий поток можно автоматически сортировать по папкам, пересылать на личные адреса, блокировать или отклонять по заданным критериям.
В панели администратора доступны аудит действий, управление API-ключами, вебхуки на входящие события и выгрузка дампов базы данных.
Финансовая сторона вопроса
Принимать письма можно бесплатно. Бесплатных лимитов Cloudflare на обработку входящих запросов и хранение в D1 с запасом хватает для пары личных доменов и умеренной переписки.
Для отправки писем расклад другой. Чтобы включить исходящие сообщения через воркеры, Cloudflare требует платный тариф Workers Paid за 5 долларов в месяц. Если у вас уже есть эта подписка для других задач, Mailflare не потребует дополнительных денег. Если подписки нет, эти 5 долларов станут вашей единственной постоянной статьей расходов. При этом количество ящиков и подключенных доменов никто не ограничивает.
Установка и запуск
Самый простой путь — воспользоваться кнопкой быстрого развертывания из репозитория. Потребуется несколько шагов:
- Авторизоваться в Cloudflare и запустить деплой по ссылке из ридми проекта.
- Выпустить API-токен с правами на управление Email Routing и воркерами.
- Дождаться окончания сборки и перейти по выданному URL.
- Пройти мастер первоначальной настройки: он создаст администратора, проверит базу данных и настроит маршрутизацию для первого домена.
Для локальной разработки или кастомизации под себя проект можно запустить на рабочей машине. Код написан на TypeScript:
cp .dev.vars.example .dev.vars
npm install
npm run db:migrate:local
npm run dev
После старта открываете http://localhost:3000. В репозитории есть готовый сидер. Команда npm run db:seed наполнит локальную базу тестовыми цепочками писем, чтобы сразу оценить интерфейс в действии.
Нюансы и ограничения
Главное ограничение проекта связано с привязкой к платформе. Перенести код на свой VPS или в другое облако не получится без полной переделки бэкенда. Логика намертво завязана на D1, R2 и внутренний почтовый роутер Cloudflare.
Второй момент — работа с мобильными устройствами. Mailflare работает как веб-приложение (PWA). Здесь нет классических протоколов IMAP и SMTP, поэтому подключить ящик к стандартным клиентам вроде Apple Mail или Thunderbird не выйдет. Работать придется через браузер или мобильную версию PWA.
Кому подойдет
Mailflare отлично решает задачу корпоративной почты для пет-проектов, инди-разработчиков и небольших команд. Если вам надоело отдавать деньги крупным сервисам за каждый новый домен, но нет желания превращаться в системного администратора почтовых демонов, проект стоит протестировать. Взамен вы получаете чистый интерфейс, свои домены и полный контроль над базой данных.
