一个基于 Vue3 和 Cloudflare Workers 实现的 WebMail(邮箱系统)解决方案,可以在无需自建服务器的前提下自托管邮箱功能。
主要功能包括:发送附件邮件、接收邮件、邮箱管理、R2 存储、D1 数据库、KV 缓存、Turnstile 验证、群发、TG 推送等
🚀 快速上手指南
1. 克隆仓库 & 安装依赖
git clone https://github.com/LaziestRen/cloud-mail.git
cd cloud-mail/mail-worker
npm install
2. 配置 Cloudflare 环境
- wrangler.toml 中填入:
- KV、D1、R2 的绑定名和 ID(创建好相关资源后复制填写)。
domain
(你的邮箱域如example.com
)、jwt_secret
(自定义密钥)、管理员邮箱等变量。
- 部署过程依赖 Cloudflare Workers、KV、D1、R2:
- 在 Cloudflare 控制台创建这些资源;
- 填入
wrangler.toml
; - 执行
npm run deploy
。
3. DNS 与邮件路由设置
- 域名解析指向 Cloudflare Workers。
- 在 Cloudflare 控制台中设置电子邮件路由,将所有邮件(Catch-all)转发至
/api
Worker。
4. 初始化数据库
部署完后访问以下 URL 初始化 D1 和 KV:
https://<你的域名>/api/init/<你的_jwt_secret>
5. 配置 Resend 邮件转发服务
- 注册 Resend,添加域名并验证;
- 获取 API Token 并配置到邮箱系统后台;
- 设置 Webhook 地址为
https://<你的域名>/api/webhooks
,并勾选相关邮件事件。
6. 本地开发环境
在本地可以模拟实际部署:
npm run dev
# 然后访问 http://127.0.0.1:8787/api/init/<your_secret> 初始化
# 在配置中,上传附件可使用本地地址(如 http://127.0.0.1:8787/api/file)
📂 项目结构 & 技术栈
- 前端(mail-vue):Vue3 + Element Plus
- 后端(mail-worker):Hono、Drizzle ORM、Cloudflare Workers
- 存储等:Cloudflare KV、R2、D1;邮件发送:Resend;附件收发:R2;人机验证:Turnstile
✅ 操作步骤总结(流程图)
步骤 | 描述 |
---|---|
克隆仓库 | 拿下代码并安装依赖 |
配置资源 | 设置 Cloudflare 资源并填写 wrangler.toml |
部署 Worker | npm run deploy 将后端部署到 Cloudflare |
设置 DNS 解析、邮件路由 | 让域名能够接收邮件并转发到 Worker |
初始化数据库 | 通过 /api/init/... 初始化后端存储 |
配置邮件服务 | Resend、Webhook 完成集成 |
登录 Web 界面 | 使用管理员邮箱登录管理后台 |
💡 小提示
- 部署前确保 DNS 已解析并开启 Cloudflare 管理(Workers 路由生效)。
- Resend 注册与域名验证可能需等待一段时间。
- Cloudflare 免费计划对 Workers、D1、R2 等有用量限制,适合个人或小规模使用。
- 如果希望在本地调试,记得访问本地
/api/init/...
初始化。