Cloud Mail 自建一个属于自己的邮箱平台

https://youtu.be/xLyXUtaC0AE

一个基于 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:
    1. 在 Cloudflare 控制台创建这些资源;
    2. 填入 wrangler.toml
    3. 执行 npm run deploy

3. DNS 与邮件路由设置

  • 域名解析指向 Cloudflare Workers。
  • 在 Cloudflare 控制台中设置电子邮件路由,将所有邮件(Catch-all)转发至 /api Worker。

4. 初始化数据库

部署完后访问以下 URL 初始化 D1 和 KV:

https://<你的域名>/api/init/<你的_jwt_secret>

5. 配置 Resend 邮件转发服务

  1. 注册 Resend,添加域名并验证;
  2. 获取 API Token 并配置到邮箱系统后台;
  3. 设置 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
部署 Workernpm run deploy 将后端部署到 Cloudflare
设置 DNS 解析、邮件路由让域名能够接收邮件并转发到 Worker
初始化数据库通过 /api/init/... 初始化后端存储
配置邮件服务Resend、Webhook 完成集成
登录 Web 界面使用管理员邮箱登录管理后台

💡 小提示

  • 部署前确保 DNS 已解析并开启 Cloudflare 管理(Workers 路由生效)。
  • Resend 注册与域名验证可能需等待一段时间。
  • Cloudflare 免费计划对 Workers、D1、R2 等有用量限制,适合个人或小规模使用。
  • 如果希望在本地调试,记得访问本地 /api/init/... 初始化。

Github:https://github.com/eoao/cloud-mail

油管:https://youtu.be/xLyXUtaC0AE

退出移动版