English | ç®€ä½“ä¸æ–‡
A personal, self-hosted mail workspace on Cloudflare Workers. Manage multiple domains and mail addresses from one responsive inbox, with an English and Simplified Chinese interface.
- Receive and send mail — Cloudflare Email Routing for inbound mail, Resend for outbound mail, attachments, and delivery tracking.
- Manage mail identities — sync existing Cloudflare routing configuration, manage domains and addresses, and choose sender identities and signatures.
- Organize your inbox — categories, labels, stars, archive, trash, advanced search, bulk actions, and navigation counts for unread mail, drafts, and sending or failed mail.
- Read and compose anywhere — desktop and mobile layouts, an optional reading pane, focused reading, replies, forwarding, and autosaved drafts.
- Keep control of access and data — local username/password or Cloudflare Access authentication, D1 for structured data, and R2 for raw mail and attachments.
- Stay notified — optional Telegram notifications with privacy settings and delivery retries.
Cloudflare commands use the globally installed cf CLI (Node.js ≥ 22.18). Install it with bun add --global cf; Wrangler is retired as a direct CLI. See deployment for the two-stage build and target migration.
For self-hosting, follow the deployment guide. You will need a Cloudflare account, a domain configured for Email Routing, and Resend for outbound mail.
For local development, use the development guide. Use the newest stable Bun already installed locally (minimum 1.4.0). Tests and deployments run locally; GitHub scans dependencies when a Release is published or the workflow is run manually, using the Bun version in package.json. A local demo mail provider is included.
Mail addresses are managed resources under one workspace Owner; login credentials and profile email are configured separately.
Develop every change in a dedicated worktree and new branch. Before each task
push and again before PR creation, run local /review and resolve all valid
findings. Feature changes also require remote PRE acceptance before a PR to
main. All PRs wait for Code Review and Security Review of the current head and
resolution of findings, then use rebase merge, main synchronization and merged
task worktree/branch cleanup. These Git steps proceed by default unless the user
restricts the task; Preview and production deployment need separate authorization.
See the
development workflow.
| Guide | What it covers |
|---|---|
| User guide | Everyday mail, identities, search, and settings |
| Local development | Setup, administrator bootstrap, and verification |
| Deployment | First deployment, upgrades, and rollback |
| Maintenance and recovery | Backups, search indexes, cleanup, and recovery |
| Inbound reliability | Ingest conflicts, plus aliases, routing scope, and delivery evidence |
| Telegram | Bot setup and notification operations |
| All documentation | API, architecture, previews, design, and release records |
FlareMail is licensed under the GNU Affero General Public License,
version 3 or (at your option) any later version (AGPL-3.0-or-later).
The Safe HTML reader preserves common email typography, colors, table layouts and responsive width rules on an isolated light canvas. Remote images require consent; CSS resource loads remain blocked. See the HTML safety boundary.
The approach follows the presentation/CSS separation in Roundcube and SnappyMail, using CSSTree for CSS parsing and validation and parse5 for HTML5 structure normalization.