# 零成本自建专属邮箱系统:Cloud Mail 完全指南

## 引言:为什么需要自建邮箱服务?

在数字时代,拥有独立的邮箱系统不仅关乎隐私保护,更是专业形象的体现。想象一下:当你使用 [email protected] 而非公共邮箱与客户沟通时,信任度将大幅提升。但传统企业邮箱动辄每年数百元的费用,让个人和小团队望而却步。

今天我要介绍的 Cloud Mail 彻底改变了这一现状——基于 Cloudflare 免费云平台构建的邮箱系统,零服务器成本、零月费,只需一个域名即可创建专业邮箱服务。下面我将详细解析这个开源项目的功能特性、技术架构和部署方法。

>

项目在线演示:https://skymail.ink

## 一、Cloud Mail 核心功能解析

### 1.1 完全免费的云端服务

Cloud Mail 巧妙利用 Cloudflare 的免费资源层:

无服务器架构:运行在 Cloudflare Workers(免费额度:每天10万次请求)

免费数据库:使用 Cloudflare D1(SQLite 数据库)

免费存储:附件存放于 Cloudflare R2(每月10GB免费额度)

邮件推送:通过 Resend 服务发送邮件(免费层每月3000封)

### 1.2 媲美商业邮箱的核心功能

功能类别

具体实现

用户价值

多账号管理

单用户支持绑定多个邮箱地址

统一管理业务/个人邮箱

附件处理

R2对象存储托管附件

支持大文件收发

安全防护

Turnstile人机验证

防止机器人批量注册

管理后台

RBAC权限控制系统

灵活控制用户权限

邮件追踪

Resend投递状态回调

实时监控邮件送达情况

数据可视化

ECharts集成

直观查看系统使用情况

### 1.3 企业级管理功能

管理员后台提供完整控制能力:

用户管理:冻结账户、分配资源配额

邮件审计:查看系统所有邮件往来

系统设置:

关闭/开放用户注册

配置邮件发送频率限制

设置私人站点访问模式

资源监控:实时查看存储空间、邮件数量

## 二、技术架构揭秘

### 2.1 前端技术栈

graph LR

A[Vue3] --> B[Element Plus]

A --> C[ECharts]

A --> D[Axios]

响应式设计:自适应PC/手机浏览器

交互体验:类Gmail的邮件操作流程

可视化:邮件数据统计图表

### 2.2 后端技术栈

graph TB

H[Hono] --> D[Drizzle ORM]

H --> K[Cloudflare KV]

H --> R[R2]

H --> D1[D1]

Web框架:Hono(专为边缘计算优化的轻量框架)

数据库层:Drizzle ORM 操作 D1 数据库

缓存系统:Cloudflare KV 存储会话数据

文件系统:R2 对象存储托管附件

### 2.3 邮件处理流程

1. 收件 -> Cloudflare邮件路由 -> Worker处理

2. 发件 -> Resend API -> 投递状态回调

3. 附件 -> R2上传/下载接口

## 三、详细部署教程

### 3.1 环境准备

# 必需工具

Node.js v18.20+

Cloudflare 账号(需绑定域名)

Git

# 克隆代码库

git clone https://github.com/LaziestRen/cloud-mail

cd cloud-mail/mail-worker

npm install

### 3.2 基础设施配置

在Cloudflare控制台创建:

D1数据库:用于存储用户/邮件数据

KV命名空间:用于缓存会话

R2存储桶:用于附件存储

Workers:准备部署后端

### 3.3 配置文件修改

编辑 wrangler.toml:

[[d1_databases]]

binding = "db"

database_name = "cloudmail_db" # 替换为你的D1名称

database_id = "xxxx-xxxx-xxxx" # 替换为D1 ID

[[kv_namespaces]]

binding = "kv"

id = "xxxx-xxxx-xxxx" # KV命名空间ID

[[r2_buckets]]

binding = "r2"

bucket_name = "attachments" # R2存储桶名称

[assets]

binding = "assets"

directory = "./dist"

[vars]

domain = ["yourdomain.com"] # 你的邮箱域名

admin = "[email protected]"# 管理员邮箱

jwt_secret = "secure_string" # 加密密钥

### 3.4 部署到Cloudflare

# 执行部署命令

npm run deploy

# 初始化数据库

访问 https://yourdomain.com/api/init/你的jwt_secret

### 3.5 配置邮件路由

进入 Cloudflare 控制台

导航到:电子邮件 → 电子邮件路由

创建路由规则:*@yourdomain.com 转发到你的Worker

### 3.6 Resend配置(邮件发送)

注册 Resend 账号

添加并验证你的域名

创建API Key并填入Cloud Mail后台

设置Webhook:https://yourdomain.com/api/webhooks

## 四、进阶使用技巧

### 4.1 多域名配置

支持同时管理多个域名邮箱:

[vars]

domain = ["business.com", "personal.net"]

### 4.2 邮件自动转发

设置规则将特定邮件转发到Telegram:

// 在邮件处理逻辑中添加

if (mail.subject.includes("紧急")) {

forwardToTelegram(mail);

}

### 4.3 存储优化策略

graph LR

A[新附件] --> B{大小判断}

B -- <5MB --> C[直接存入R2]

B -- >5MB --> D[生成预签名链接]

## 五、本地开发指南

### 5.1 启动开发环境

npm run dev

# 访问 http://localhost:8787

### 5.2 初始化本地数据库

访问 http://127.0.0.1:8787/api/init/你的jwt_secret

### 5.3 配置特殊参数

# 在开发模式下

R2域名 = http://127.0.0.1:8787/api/file

关闭Turnstile验证

## 六、项目目录解析

cloud-mail

├── mail-worker # 后端核心

│ ├── src/api # RESTful接口

│ ├── src/email # 邮件处理逻辑

│ ├── src/entity # 数据库模型

│ └── src/service # 业务逻辑层

└── mail-vue # 前端工程

├── src/views # 所有页面组件

├── src/store # 全局状态管理

└── src/request # API请求封装

关键文件说明:

mail-worker/src/email/receiver.js – 邮件接收处理器

mail-vue/src/views/mail/Compose.vue – 邮件编写组件

mail-worker/src/service/user.service.js – 用户管理逻辑

## 七、常见问题解答(FAQ)

### Q1:需要多少预算才能运行?

零费用! Cloudflare Workers、D1、R2都有永久免费额度,Resend每月免费3000封邮件足够个人使用。

### Q2:能支持多少用户?

实测数据:

100活跃用户:日均500封邮件

D1数据库:最高支持500MB数据

免费额度内支持中小团队使用

### Q3:邮件投递可靠性如何?

通过Resend发送邮件:

专业邮件服务商投递

投递成功率 > 99.5%

支持DKIM/SPF认证

### Q4:如何备份数据?

建议方案:

# 导出D1数据库

wrangler d1 export your-db --output ./backup.sql

# 定时备份到GitHub

0 2 * * * /path/to/backup_script.sh

### Q5:手机端体验如何?

完全响应式设计:

移动端专属布局

触控优化操作

附件预览功能

## 八、未来发展方向

根据项目路线图,即将推出:

邮件自动分类:基于内容自动归档

团队协作空间:共享邮件线程

日历集成:邮件转会议邀约

多语言支持:中英文界面切换

## 结语:开启你的专属邮箱之旅

Cloud Mail 打破了自建邮箱的技术壁垒和经济门槛。通过本文指南,您已经掌握:

免费邮箱系统的部署方法

企业级功能的配置技巧

日常运维的最佳实践

>

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

问题交流:Telegram群组

现在就开始行动吧!只需30分钟,您就能拥有媲美付费服务的专属邮箱系统。期待在社区看到您的实践分享和创新改进。

2025-12-05 19:01:33