Cloud Mail 邮箱搭建(CF部署无需服务器)

发布时间: 2025-08-21 热度: 95672

Cloud Mail 邮箱搭建(CF部署无需服务器)

项目简介

只需要一个域名,就可以创建多个不同的邮箱,类似各大邮箱平台 QQ邮箱,谷歌邮箱等,本项目使用Cloudflare部署,Resend推送邮件,无需服务器费用,搭建自己的邮箱服务

代发模式,安全无屏蔽

功能介绍

  • 💰 低成本使用:无需服务器,部署到 Cloudflare Workers 降低使用成本

  • 💻 响应式设计:响应式布局自动适配PC和大部分手机端浏览器

  • 📧 邮件发送:集成resend发送邮件,支持群发,内嵌图片和附件发送,发送状态查看

  • 🛡️ 管理员功能:可以对用户,邮件进行管理,RABC权限控制对功能及使用资源限制

  • 🔀 多号模式:开启后一个用户可以添加多个邮箱,默认一用户一邮箱,类似各大邮箱平台

  • 📦 附件收发:支持收发附件,使用R2对象存储保存和下载文件

  • 🔔 邮件推送:接收邮件后可以转发到TG机器人或其他服务商邮箱

  • 📡 开放API:支持使用API批量生成用户,多条件查询邮件

  • 📈 数据可视化:使用echarts对系统数据详情,用户邮件增长可视化显示

  • ⭐ 星标邮件:标记重要邮件,以便快速查阅

  • 🎨 个性化设置:可以自定义网站标题,登录背景,透明度

  • ⚙️ 功能设置:可以对注册,邮件发送,添加等功能关闭和开启,设为私人站点

  • 🤖 人机验证:集成Turnstile人机验证,防止人机批量注册

  • 📜 更多功能:正在开发中...

技术栈

项目展示


cloud-mail 部署到 Cloudflare Workers 常见踩坑总结

1. Custom Domain 与已有 DNS 记录冲突

报错:Hostname '***' already has externally managed DNS records... [code: 100117]

原因:CUSTOM_DOMAIN 指定的域名/子域名在 Cloudflare DNS 里已存在 A/CNAME 记录,或被其他 Worker/Pages 项目占用。

解决:去 Cloudflare → DNS → 记录,删除冲突记录;或检查 Workers & Pages 里是否有其他项目占用了这个域名。


2. GitHub Secrets 填错成"名字"而不是"ID"

报错:KV namespace '***' is not valid... [code: 10042]

原因:D1_DATABASE_ID / KV_NAMESPACE_ID 这两个 Secret,新手很容易误填成资源的名字(比如 cloud-mail),但脚本需要的是真正的 ID/UUID

解决:

  • D1 ID:Cloudflare → 存储和数据库 → D1 → 点进数据库 → 复制 Database ID
  • KV ID:Cloudflare → 存储和数据库 → KV → 点进命名空间 → 复制 Namespace ID(一长串字母数字,不是名字)

提醒:如果这两个 Secret 干脆不填,脚本会按 NAME(默认 cloud-mail)自动查找同名资源并复用,同样安全,不容易填错。


3. 最后一步"初始化数据库"被 Cloudflare 安全防护拦截

报错:HTTP 403,返回内容是 Just a moment... 的 JS 挑战页(challenges.cloudflare.com)

原因:GitHub Actions 服务器的 IP 是公开数据中心 IP,天然会被 Cloudflare 的机器人识别机制判定为可疑流量,拦截了这个 curl 请求。触发源可能有多层,需要逐层排查:

触发源 是否能被 WAF"跳过"规则覆盖
WAF 自定义规则(Managed Rules) ✅ 可以跳过
安全级别(Security Level) ✅ 可以跳过(需手动勾选)
Bot Fight 模式(基础版) 不能被 WAF 跳过规则覆盖,必须单独关闭
Super Bot Fight Mode ✅ 可以跳过

最终解法:安全性 → 设置 → 找到 "Bot Fight 模式",直接关闭开关(这是本次问题的根本原因,反复调 WAF 规则都不生效,就是因为漏了这个)。


xi-mail(二开的):https://github.com/PastKing/xi-mail

在下方留下您的评论.加入TG群.打赏🍗