零成本搭建专属域名邮箱指南

本教程基于开源项目 Cloud Mail,结合 CloudflareResend 服务,打造零服务器成本、免维护、功能完善的个人专属域名邮箱系统。


一、 项目核心优势

  1. 完全免费与零服务器成本:基于 Cloudflare 免费的计算(Workers)和存储资源(D1 / KV),免除服务器租用、宕机及黑客攻击的顾劳。
  2. 收发一体:突破 Cloudflare 原生仅支持收信的限制,整合 Resend 发信服务,支持无缝收发与回复邮件。
  3. 多前缀与多域名集中管理:同一个后台可处理同域名下无限个前缀的邮件;支持添加多个不同域名,同时支持开放注册或邀请码注册。

二、 前置准备工作

  1. 托管于 Cloudflare 的自定义域名(如:7.edu.kg 或自购域名)。
  2. GitHub 账号(用于 Fork 项目仓库)。
  3. 清理旧 DNS 记录:若域名此前绑定过其他邮箱服务(如 Hostuno),需先进入 Cloudflare 的 DNS 记录设置中,清空旧的 MX、TXT 等邮箱解析记录。

三、 详细部署步骤

阶段一:项目 Fork 与 Workers 部署

  1. Fork 仓库:登录 GitHub,找到 Cloud Mail 开源项目仓库,点击右上角 Fork,将代码复制到个人 GitHub 账号下。
  2. 创建 Worker
  3. 登录 Cloudflare 账号,进入“计算” -> “Workers & Pages”。
  4. 选择 创建应用程序 -> Continue with GitHub
  5. 选择刚刚 Fork 的 cloud-mail 仓库,点击下一步。
  6. 展开下方高级设置,将“路径”修改为:mail/worker
  7. 点击 部署,等待部署完成。

阶段二:配置自定义域名与环境变量

  1. 绑定自定义域名
  2. 进入刚刚部署好的 Worker 设置。
  3. 在域名绑定中添加自定义域名(例如:mail.7.edu.kg),作为邮箱系统的登录面板网址。
  4. 添加环境变量
  5. domain(类型:JSON):填充域名数组,格式如 ["7.edu.kg"]
  6. admin(类型:文本):设置管理员邮箱地址,如 admin@7.edu.kg
  7. JWT_SECRET(类型:文本):设置后台防伪密钥,填写一串长字符(勿含特殊符号)。

阶段三:创建并绑定数据库

系统依赖两种 Cloudflare 免费数据库搭配运行:

  • D1 SQL 数据库:作为前台登记簿,存储发件人、时间、主题等元数据,方便快速检索。
  • KV 数据库:作为底层大仓库,存储邮件的长正文内容。
  1. 创建数据库
  2. 进入“存储和数据库”,创建一个 D1 SQL 数据库(命名如 cloud-mail)。
  3. 创建一个 Workers KV 命名空间(命名如 cloud-mail)。
  4. 在 Worker 中添加绑定
  5. 返回 Worker 的“设置” -> “绑定”。
  6. 添加 KV 绑定:变量名称必须填写小写 KV,选择刚创建的 KV 空间。
  7. 添加 D1 绑定:变量名称必须填写小写 DB,选择刚创建的 D1 数据库。

阶段四:配置电子邮件路由与 Catch-All 规则

  1. 启用邮件路由
  2. 进入域名管理页,点击“电子邮件” -> “电子邮件路由”。
  3. 点击“开始使用”,跳过入门指南,选择“启用电子邮件系统”并自动添加 DNS 解析记录。
  4. 配置 Catch-All 规则
  5. 在路由规则中修改 Catch-All 规则。
  6. 操作选择:发送到 Worker
  7. 目标选择:部署好的 Cloud mail Worker。
  8. 确保开启该规则,使发往该域名的所有前缀邮件均转交 Worker 处理。

阶段五:初始化数据库与管理员注册

  1. 初始化数据库
  2. 在浏览器访问初始化地址:https://你的面板域名/API/init/你的JWT_SECRET(例:[https://mail.7.edu.kg/API/init/test](https://mail.7.edu.kg/API/init/test))。
  3. 页面显示 success 即代表初始化成功。
  4. 注册管理员账号
  5. 访问面板域名,使用在环境变量中设定的管理员邮箱(如 admin@7.edu.kg)进行注册并设置密码。
  6. 登录后即可正常接收发送至该域名下任意前缀的邮件。

四、 配置 Resend 实现发信功能

为了使域名邮箱具备对外发信与回复能力,需接入第三方发信服务工具 Resend。

  1. 注册与域名验证
  2. 注册 Resend 账号并完成邮箱验证。
  3. 在“Domains”页面添加域名。
  4. 验证方式选择 Auto Config,授权 Cloudflare 自动完成 DNS 校验记录添加,等待状态变为绿色的 verified
  5. 获取 API Key
  6. 在“API Keys”页面新建 Key,复制并保存生成的 Key(仅显示一次)。
  7. 设置 Webhook 物流状态通知
  8. 在“Webhooks”页面添加 Endpoint URL:https://你的面板域名/API/webhooks(例:[https://mail.7.edu.kg/API/webhooks](https://mail.7.edu.kg/API/webhooks))。
  9. 事件类型中仅勾选以下 5 项邮件状态事件:
  10. bounced(退信)
  11. complained(被投诉/垃圾邮件)
  12. delivered(成功送达)
  13. delivery_delayed(发送延迟)
  14. failed(发送失败)
  • 警告:切勿勾选 clickedopened,避免因包含追踪探针而被 Gmail 等主流邮箱判定为垃圾邮件。
  1. 填入 API Key
  2. 返回 Cloud Mail 后台,进入“System Settings” -> “Email Settings” -> “Resend”。
  3. 粘贴 API Key 并保存,即可完成发信功能的配置。
额度说明:Resend 免费套餐单账号支持每天最多发送 100 封邮件、绑定 1 个域名,足以满足个人日常使用。多域名需求可注册多个免费 Resend 账号对应配置 Token。

五、 系统高级设置与补充说明

  1. 安全与注册控制
  2. 个人独享使用时,建议在系统设置中关闭 Sign up 注册开关。
  3. 若需提供给他人使用,可开启 Invite code(邀请码)功能生成邀请码进行受控注册。
  4. 界面个性化
  5. 支持自定义修改邮箱名称及背景图片。
  6. Telegram 消息推送
  7. 由于无服务器架构不支持传统 IMAP/POP3 协议绑定本地客户端,系统提供 Telegram Bot 推送功能,配置后可实现新邮件实时弹窗提醒。
  8. 附件与存储扩容
  9. 默认 KV 存储:免费额度 1GB(每天 1000 次写入),可存储数万封纯文本邮件。
  10. R2 对象存储扩容:如需接收大附件,可在系统设置中切换至 Cloudflare R2(免费 10GB 空间及每月 100 万次操作),但开通 R2 需要在 Cloudflare 账号中绑定信用卡。建议前期使用免费 KV 存储,空间不足时再考虑开通 R2。

标签: none

添加新评论