Cloud Mail:基于 Cloudflare 的简约邮箱服务,零服务器成本搭建私人邮箱
标签: Cloudflare / 邮箱服务 / 开源 / Workers / Hono / Vue3 / Resend / R2 / D1
原文: 微信公众号「一飞开源」https://mp.weixin.qq.com/s/AbAkKuo-j5x7MYLjhWd9WA
GitHub: https://github.com/maillab/cloud-mail
License: MIT
一句话定位
Cloud Mail 是一个基于 Cloudflare 全家桶的简约响应式邮箱服务。只需要一个域名,就可以创建多个不同的邮箱,部署到 Cloudflare Workers,零服务器成本搭建自己的邮箱服务。
功能概览
| 功能 | 说明 |
|---|---|
| 💰 低成本 | 部署到 Cloudflare Workers,无需服务器 |
| 💻 响应式 | 自动适配 PC 和手机端浏览器 |
| 📧 邮件发送 | 集成 Resend,支持群发、内嵌图片、附件、发送状态查看 |
| 🛡️ 管理员 | 用户/邮件管理,RBAC 权限控制,资源限制 |
| 📦 附件收发 | R2 对象存储保存和下载文件 |
| 🔔 邮件推送 | 接收邮件后转发到 TG 机器人或其他邮箱 |
| 📡 开放 API | 批量生成用户、多条件查询邮件 |
| 🔢 验证码识别 | Workers AI 自动识别邮件验证码 |
| 📈 数据可视化 | ECharts 展示系统数据、用户邮件增长 |
| 🎨 个性化 | 自定义网站标题、登录背景、透明度 |
| 🤖 人机验证 | Turnstile 防止批量注册 |
技术栈:Cloudflare 全家桶
| 组件 | 技术 |
|---|---|
| 平台 | Cloudflare Workers |
| Web 框架 | Hono |
| ORM | Drizzle |
| 前端框架 | Vue3 |
| UI 框架 | Element Plus |
| 邮件发送 | Resend |
| 缓存 | Cloudflare KV |
| 数据库 | Cloudflare D1 |
| 文件存储 | Cloudflare R2 |
核心优势:从运行时、数据库、缓存、文件存储到邮件发送,全部基于 Cloudflare 生态,无需自建任何服务器。
架构解析
┌─────────────────────────────────────────┐
│ Vue3 + Element Plus (前端) │
│ 响应式布局 · ECharts 可视化 · i18n │
├─────────────────────────────────────────┤
│ Cloudflare Workers (后端) │
│ Hono · Drizzle ORM · RBAC · Turnstile │
├─────────────────────────────────────────┤
│ Cloudflare 生态 │
│ D1 (数据库) · KV (缓存) · R2 (文件) │
│ Resend (邮件) · Workers AI (验证码) │
└─────────────────────────────────────────┘
项目结构
后端(mail-worker)
mail-worker/
├── src/
│ ├── api/ # API 接口层
│ ├── const/ # 项目常量
│ ├── dao/ # 数据访问层
│ ├── email/ # 邮件处理与接收
│ ├── entity/ # 数据库实体
│ ├── error/ # 自定义异常
│ ├── hono/ # Web 框架配置、拦截器、全局异常
│ ├── i18n/ # 语言国际化
│ ├── init/ # 数据库缓存初始化
│ ├── model/ # 响应体数据封装
│ ├── security/ # 身份权限认证
│ ├── service/ # 业务服务层
│ ├── template/ # 消息模板
│ ├── utils/ # 工具类
│ └── index.js # 入口文件
├── package.json
└── wrangler.toml # Cloudflare Workers 配置
前端(mail-vue)
mail-vue/
├── src/
│ ├── axios/ # Axios 配置
│ ├── components/ # 自定义组件
│ ├── echarts/ # ECharts 组件导入
│ ├── i18n/ # 语言国际化
│ ├── init/ # 入站初始化
│ ├── layout/ # 主体布局组件
│ ├── perm/ # 权限认证
│ ├── request/ # API 接口
│ ├── router/ # 路由配置
│ ├── store/ # 全局状态管理
│ ├── utils/ # 工具类
│ ├── views/ # 页面组件
│ ├── app.vue
│ ├── main.js
│ └── style.css
├── package.json
└── env.release # 项目配置
亮点解读
1. 零服务器成本
传统邮箱服务需要 VPS + 邮件服务器软件(Postfix/Dovecot),维护成本高。Cloud Mail 全部跑在 Cloudflare Workers 上,利用 Cloudflare 免费额度,个人使用几乎零成本。
2. 一个域名多个邮箱
类似 Gmail 别名,但更灵活。一个域名下可以创建多个独立邮箱账户,适合:
- 个人不同用途分离(工作/注册/临时)
- 小团队共享域名邮箱
- 临时邮箱服务
3. 验证码自动识别
利用 Workers AI 自动识别邮件中的验证码。这个功能非常实用——很多场景只需要从邮件里提取验证码,不需要看全文。
4. 邮件推送到 Telegram
接收邮件后自动转发到 TG 机器人,实时感知新邮件,不用频繁登录查看。
5. RBAC 权限 + 开放 API
管理员可以控制用户权限和资源限制,API 支持批量创建用户和查询邮件,适合需要程序化管理的场景。
适合谁用?
- 🏠 个人用户:想拥有自己域名的邮箱,不想花钱买服务器
- 🏢 小团队:需要域名邮箱 + 权限管理
- 🔧 开发者:需要邮箱 API 集成到自己的应用中
- 📮 临时邮箱:注册网站用的一次性邮箱服务
- 🌐 Cloudflare 用户:已经在用 Cloudflare 生态,想加一个邮箱服务
竞品对比
| 对比项 | Cloud Mail | 自建 Postfix | Zoho Mail | Migadu |
|---|---|---|---|---|
| 服务器 | 无需 | 需要 VPS | 无需 | 无需 |
| 成本 | 近零 | VPS 费用 | 免费版有限 | 按域名收费 |
| 自定义域名 | ✅ | ✅ | ✅ | ✅ |
| 开源 | ✅ MIT | ✅ | ❌ | ❌ |
| 验证码识别 | ✅ Workers AI | ❌ | ❌ | ❌ |
| TG 推送 | ✅ | 需自建 | ❌ | ❌ |
| 管理后台 | ✅ RBAC | 需自建 | ✅ | ✅ |
快速开始
前置条件
- 一个域名
- Cloudflare 账号
- Resend 账号(邮件发送)
部署步骤
- Clone 项目
- 配置
wrangler.toml(D1、KV、R2 绑定) - 部署 Workers:
npx wrangler deploy - 配置域名 DNS(MX 记录指向 Cloudflare)
- 构建 Vue 前端并部署到 Cloudflare Pages
总结
Cloud Mail 把邮箱服务这件事做轻了——用 Cloudflare Workers 代替 VPS,用 D1 代替 MySQL,用 R2 代替文件服务器,用 Resend 代替 Postfix。如果你有一个域名,想零成本搭一个私人邮箱服务,Cloud Mail 是目前最优雅的开源方案之一。
核心价值:
- 🆓 零服务器成本(Cloudflare 免费额度)
- 🔧 完整功能(发送/接收/附件/推送/验证码识别)
- 🔐 权限管理(RBAC + Turnstile)
- 📡 开放 API(批量操作/程序化管理)
- 🌍 响应式 + i18n
相关链接
- GitHub: https://github.com/maillab/cloud-mail
- 一飞开源: https://code.exmay.com/
- 原文: https://mp.weixin.qq.com/s/AbAkKuo-j5x7MYLjhWd9WA
Keywords: Cloud Mail, Cloudflare Workers, 邮箱服务, Hono, Vue3, Resend, D1, R2, 零服务器, 开源项目, RBAC, Turnstile, 验证码识别