首页
cloudflare技术

在 Cloudflare Workers 上零成本搭建私有邮箱服务

在 Cloudflare Workers 上零成本搭建私有邮箱服务:Cloud Mail,一个现代邮箱服务,让你拥有一个功能完整、界面优雅的私有邮箱系统,无需服务器成本。

洛宸

洛宸

在 Cloudflare Workers 上零成本搭建私有邮箱服务

Cloud Mail:在 Cloudflare Workers 上零成本搭建私有邮箱服务

项目介绍

在当今互联网时代,拥有一个属于自己的域名邮箱,无论是用于个人通信、业务往来还是注册各类服务,都显得越来越重要。但传统的自建邮箱方案不仅需要一台服务器,还需要配置复杂的邮件系统(如 Postfix、Dovecot 等),维护成本极高。而 Cloud Mail 的出现让这一切变得简单——它是一个运行在 Cloudflare Workers 上的现代邮箱服务,让你可以在零服务器成本的情况下,拥有一个功能完整、界面优雅的私有邮箱系统。

项目地址:https://github.com/luochen-zhang/cloud-mail

开源协议:MIT

核心优势

  • 费用:0 元(利用 Cloudflare Workers 免费额度)
  • 性能:极速(部署在 Cloudflare 全球边缘节点)
  • 灵活:只需要一个域名,就可以创建多个不同的邮箱账号
  • 运维成本:零——无需管理服务器

核心功能

Cloud Mail 是一套完整的邮箱服务解决方案,功能覆盖了日常使用的方方面面:

功能 说明
邮件发送 集成 Resend 发送邮件,支持群发、内嵌图片和附件发送,实时查看发送状态
附件收发 支持收发附件,使用 Cloudflare R2 对象存储保存和下载文件
邮件推送 接收邮件后可以转发到 Telegram 机器人或其他服务商邮箱
验证码识别 使用 Cloudflare Workers AI,自动识别邮件中的验证码
管理员功能 可以对用户和邮件进行管理,RBAC 权限控制对功能及使用资源进行限制
多号模式 开启后一个用户可以添加多个邮箱地址
开放 API 支持使用 API 批量生成用户,多条件查询邮件
数据可视化 使用 ECharts 对系统数据详情、用户邮件增长进行可视化展示
个性化设置 可自定义网站标题、登录背景、透明度
人机验证 集成 Turnstile 人机验证,防止批量注册
响应式设计 响应式布局自动适配 PC 和大部分手机端浏览器

技术栈

Cloud Mail 采用了现代化的全栈技术方案:

  • 平台:Cloudflare Workers
  • Web 框架:Hono
  • ORM:Drizzle
  • 前端框架:Vue3
  • UI 框架:Element Plus
  • 邮件推送:Resend
  • 缓存:Cloudflare KV
  • 数据库:Cloudflare D1
  • 文件存储:Cloudflare R2

部署教程

准备工作

开始部署前,你需要准备:

  1. 一个 Cloudflare 账号
  2. 一个 GitHub 账号
  3. 一个已托管在 Cloudflare 的域名(用于配置邮箱服务)
  4. (可选)一个 Resend 账号(用于邮件发送功能)

方式一:可视化快速部署(推荐)

这是最简单的部署方式,全程在浏览器中完成。

第 1 步:Fork 仓库

登录 GitHub,打开 Cloud Mail 项目仓库,点击右上角的 Fork 按钮,将仓库复制到你的 GitHub 账号下。

第 2 步:进入 Cloudflare Workers & Pages

登录 Cloudflare 控制台,进入 Workers & Pages 创建页面:

https://dash.cloudflare.com/?to=/:account/workers-and-pages/create

第 3 步:连接 GitHub 并选择仓库

点击 Continue with GitHub,按提示授权 Cloudflare 访问你的 GitHub 账号,然后选择你刚刚 Fork 的 cloud-mail 仓库。

第 4 步:设置构建和部署命令

Cloud Mail 包含两个子项目:

  • mail-worker:后端 Worker 项目
  • mail-vue:Vue 前端项目

在部署时,需要分别进行配置:

构建命令npm run build(在项目根目录执行)

部署命令:Cloudflare Pages 会自动识别并部署前端项目,Worker 部分需要单独部署。

💡 建议参考项目的部署文档获取最新的部署配置细节。

第 5 步:配置 Cloudflare 资源

Cloud Mail 依赖以下 Cloudflare 资源,需要在部署前创建并配置:

  1. D1 数据库:用于存储用户、邮件等数据
  2. KV 命名空间:用于缓存
  3. R2 存储桶:用于存储附件

在 Cloudflare 控制台中依次创建这些资源,并在 wrangler.toml 中配置对应的绑定信息。

第 6 步:配置邮箱相关服务

  1. 配置域名邮箱:在 Cloudflare 的 Email Routing 中配置你的域名邮箱接收规则
  2. 配置 Resend:注册 Resend 账号,获取 API Key,用于邮件发送功能
  3. (可选)配置 Telegram Bot:如果希望邮件推送到 Telegram,配置 Bot Token

第 7 步:部署并初始化

完成以上配置后,在 Cloudflare Pages 中触发部署,等待构建完成。部署成功后:

  1. 访问你的 Pages 域名,进入 Cloud Mail 登录页面
  2. 首次使用需要注册管理员账号
  3. 登录后即可开始配置和使用邮箱服务

💡 项目提供了在线演示供体验,你可以在部署前先感受一下完整功能。

方式二:CLI 部署(适合开发者)

如果你习惯使用命令行,也可以通过 Wrangler CLI 部署:

# 克隆仓库
git clone https://github.com/luochen-zhang/cloud-mail.git
cd cloud-mail

# 安装依赖
npm install

# 登录 Cloudflare
npx wrangler login

# 部署 Worker(需先配置 wrangler.toml)
cd mail-worker
npx wrangler deploy

# 构建并部署前端(需先配置环境变量)
cd ../mail-vue
npm run build
# 将 dist 目录部署到 Cloudflare Pages