# 基于 Cloudflare 的简约响应式邮箱服务，支持邮件发送、附件收发

**URL:** <https://4gfj4hgkj4as4.pages.dev/t/topic/83602>\
**Category:** Open Source\
**Created:** [2026 年4 月 27 日 08:26 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602 "2026-04-27T08:26:05Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![RodickYu](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/rodickyu/32/653_2.png) [@RodickYu](https://4gfj4hgkj4as4.pages.dev/u/RodickYu)\
**Post date:** [2026 年4 月 27 日 08:26 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/1 "2026-04-27T08:26:05Z")

</div>

Github仓库地址：

```auto
https://github.com/maillab/cloud-mail

```

* * *

## 功能介绍

- **💰 低成本使用** ： 可部署到 Cloudflare Workers 降低服务器成本
- **💻 响应式设计** ：响应式布局自动适配PC和大部分手机端浏览器
- **📧 邮件发送** ：集成Resend发送邮件，支持群发，内嵌图片和附件发送，发送状态查看
- **🛡 管理员功能** ：可以对用户，邮件进行管理，RABC权限控制对功能及使用资源限制
- **📦 附件收发** ：支持收发附件，使用R2对象存储保存和下载文件
- **🔔 邮件推送** ：接收邮件后可以转发到TG机器人或其他服务商邮箱
- **📡 开放API** ：支持使用API批量生成用户，多条件查询邮件
- **📈 数据可视化** ：使用ECharts对系统数据详情，用户邮件增长可视化显示
- **🎨 个性化设置** ：可以自定义网站标题，登录背景，透明度
- **🤖 人机验证** ：集成Turnstile人机验证，防止人机批量注册

* * *

> **搭建教程：youtube视频，也是我看到这个项目的地方**
>
> [https://www.youtube.com/watch?v=3nzW1PUbkDs](https://www.youtube.com/watch?v=3nzW1PUbkDs)

* * *

> **搭建教程：文字简述版**
>
> ### 前期准备
> 
> 1.一个CF账号 `https://www.cloudflare.com`  
> 2.一个已托管于CF的域名  
> 3.Resend账号 `https://resend.com`
> 
> ### 操作步骤
> 
> 1.前往Github仓库Fork该项目（觉得项目优秀请支持作者 ⭐ ）
> 
> 2.在CF中分别创建D1数据库和KV空间（名称随意）
> 
> 3.在CF中创建Workers项目（Continue with github，选择刚刚Fork的项目，初次使用需链接你的  
> github账号）\*\*在部署页面下滑至`高级设置`展开，修改`路径`内容为`/mail-work`
> 
> 4.为该项目添加自定义域名（必须为已添加在该项目CF账号下的域名，例：`mail.example.com`）
> 
> 5.添加环境变量
> 
> 邮箱域名：
> 
> > 类型：JSON  
> > 变量名称：domain  
> > 值：[“你自定义域名的根域，例：`example.com`”] \*注意此处中括号和引号均为英文字符
> 
> 管理员账号：
> 
> > 类型：文本  
> > 变量名称：admin  
> > 值：你想要的管理员邮箱，例：`admin@example.com`
> 
> 安全密钥变量：
> 
> > 类型：文本  
> > 变量名称：jwt\_secret  
> > 值：数字+字母的组合，例：abc456xyz \*注意此处安全密钥不能包含特殊字符
> 
> 6.绑定KV空间和D1数据库
> 
> KV空间
> 
> > 变量名称：`kv` \*此处为小写字母  
> > KV命名空间：`选择你刚刚创建的KV空间`
> 
> D1数据库
> 
> > 变量名称：`db` \*此处为小写字母  
> > D1数据库：`选择你刚刚创建的D1数据库`
> 
> 7.设置电子路由
> 
> - 从CF主页面点击你的域名（`example.com`）==\>左侧菜单页面点击电子邮件==\>电子邮件路由==\>开始使用（初次设置时请点击`跳过入门指南`）==\>页面中上方点击`启用电子邮件路由`==\>下滑点击`添加记录并启用`
> - 在`电子邮件路由`页面点击`路由规则`==\>编辑`Catch-All`规则==\>`操作`选择`发送到Worker`==\>`目标`选择刚刚创建的Workers项目==\>点击保存
> - 确认`Catch-All`规则是`活动`状态
> 
> 8.初始化  
> 在浏览器中地址栏输入：你的自定义域名/api/init/`安全密钥的值` \*例：`mail.example.com/api/init/abc456xyz` 页面显示`SUCCESS`即表示初始化成功
> 
> 9.登录及收件  
> 此时访问你设置的`自定义域名`即可看到邮箱的登录/注册页面，`Sign up`注册你设置过的管理员邮箱，为其设置登录密码。注册完成后返回邮箱登录页面即可使用管理员邮箱账号登录及正常收件了
> 
> 10.Resend设置与发件
> 
> - 登录你的Resend账号，通过`Domains`页面添加你的邮箱域名`example.com`，等待DNS验证（Auto configure）通过
> - 在Resend的`API Keys`页面创建你的密钥`Create API key`，填写密钥名称/选择权限，复制`API Key` \*注意此处仅显示一次，注意保存好
> - `Webhooks`页面设置邮件收发状态提示，点击`Add Webhooks`，在`Endpoint URL`中输入`https://mail.example.com/api/webhooks`，在`Events types`中勾选`Email`大类中的`email.bounced`(退信)、`email.complained`(被投诉)、`email.delivered`(送达)、`email.delivery_delayed`(发送延迟)、`email.failed`(发送失败)，其余不建议选择。
> - 回到邮箱页面，选择`System Settings`，在`Email`板块中的`Resend Token`中`+`添加刚刚在Resend处获取的`API Key`，至此即可正常发送邮件

---

<div class="post-metadata">

**Author:** ![sydney1](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/sydney1/32/34353_2.png) [@sydney1](https://4gfj4hgkj4as4.pages.dev/u/sydney1)\
**Post date:** [2026 年4 月 27 日 08:30 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/2 "2026-04-27T08:30:07Z")

</div>

用的邮件路由吧，域名不想托CF用不了

---

<div class="post-metadata">

**Author:** ![OpenClaw](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/openclaw/32/37852_2.png) [@OpenClaw](https://4gfj4hgkj4as4.pages.dev/u/OpenClaw)\
**Post date:** [2026 年4 月 27 日 08:30 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/3 "2026-04-27T08:30:44Z")

</div>

新人来学习一下

---

<div class="post-metadata">

**Author:** ![lovoup](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/lovoup/32/19024_2.png) [@lovoup](https://4gfj4hgkj4as4.pages.dev/u/lovoup)\
**Post date:** [2026 年4 月 27 日 08:32 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/4 "2026-04-27T08:32:25Z")

</div>

感谢分享

---

<div class="post-metadata">

**Author:** ![RodickYu](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/rodickyu/32/653_2.png) [@RodickYu](https://4gfj4hgkj4as4.pages.dev/u/RodickYu)\
**Post date:** [2026 年4 月 27 日 08:40 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/5 "2026-04-27T08:40:43Z")

</div>

嗯，是的~

不托管CF的用serv00的邮件系统也不错，我都在用

或者用企业微信的也行，就是这个限制创建邮箱数量

---

<div class="post-metadata">

**Author:** ![Arvin\_Leung](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/arvin_leung/32/9914_2.png) [@Arvin\_Leung](https://4gfj4hgkj4as4.pages.dev/u/Arvin_Leung)\
**Post date:** [2026 年4 月 27 日 09:55 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/6 "2026-04-27T09:55:57Z")

</div>

我的用就是SERV00，挺好用的。

---

<div class="post-metadata">

**Author:** ![gb\_w](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/gb_w/32/6162_2.png) [@gb\_w](https://4gfj4hgkj4as4.pages.dev/u/gb_w)\
**Post date:** [2026 年4 月 27 日 10:22 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/7 "2026-04-27T10:22:25Z")

</div>

这个方法还可以，不过我已经部署过了，来了还是支持下~

---

<div class="post-metadata">

**Author:** ![Shawn](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/shawn/32/39603_2.png) [@Shawn](https://4gfj4hgkj4as4.pages.dev/u/Shawn)\
**Post date:** [2026 年6 月 3 日 16:50 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/8 "2026-06-03T16:50:31Z")

</div>

之前就部署的这个，用了好几个月，挺好的

---

<div class="post-metadata">

**Author:** ![Struhaqi](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/struhaqi/32/40796_2.png) [@Struhaqi](https://4gfj4hgkj4as4.pages.dev/u/Struhaqi)\
**Post date:** [2026 年6 月 3 日 23:57 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/9 "2026-06-03T23:57:06Z")

</div>

学习学习

---

<div class="post-metadata">

**Author:** ![Aneirin-supar](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/aneirin-supar/32/21444_2.png) [@Aneirin-supar](https://4gfj4hgkj4as4.pages.dev/u/Aneirin-supar)\
**Post date:** [2026 年6 月 3 日 23:58 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/10 "2026-06-03T23:58:46Z")

</div>

来学习一下!

---

<div class="post-metadata">

**Author:** ![mercuryhg](https://4gfj4hgkj4as4.pages.dev/letter_avatar_proxy/v4/letter/m/e274bd/32.png) [@mercuryhg](https://4gfj4hgkj4as4.pages.dev/u/mercuryhg)\
**Post date:** [2026 年6 月 4 日 01:41 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/11 "2026-06-04T01:41:54Z")

</div>

域名邮箱收信就很好。

---

<div class="post-metadata">

**Author:** ![supers](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/supers/32/567_2.png) [@supers](https://4gfj4hgkj4as4.pages.dev/u/supers)\
**Post date:** [2026 年6 月 4 日 02:02 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/12 "2026-06-04T02:02:51Z")

</div>

vps8 支持邮件路由

---

<div class="post-metadata">

**Author:** ![Struhaqi](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/struhaqi/32/40796_2.png) [@Struhaqi](https://4gfj4hgkj4as4.pages.dev/u/Struhaqi)\
**Post date:** [2026 年6 月 5 日 09:55 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/13 "2026-06-05T09:55:43Z")

</div>

![jinbuqu](https://4gfj4hgkj4as4.pages.dev/uploads/default/original/3X/c/8/c88313b936b7d27d30e8a14f3e3cc0763f57861e.png)  
我学习到可以第九登录及收件，出现这个提示，进不去登录邮箱的界面。大佬能给解决下吗？初始化已经成功显示success了。

---

<div class="post-metadata">

**Author:** ![RodickYu](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/rodickyu/32/653_2.png) [@RodickYu](https://4gfj4hgkj4as4.pages.dev/u/RodickYu)\
**Post date:** [2026 年6 月 5 日 13:35 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/14 "2026-06-05T13:35:28Z")

</div>

你部署时没设置`domain`这个环境变量啊？

---

<div class="post-metadata">

**Author:** ![Struhaqi](https://4gfj4hgkj4as4.pages.dev/user_avatar/4gfj4hgkj4as4.pages.dev/struhaqi/32/40796_2.png) [@Struhaqi](https://4gfj4hgkj4as4.pages.dev/u/Struhaqi)\
**Post date:** [2026 年6 月 5 日 14:16 UTC](https://4gfj4hgkj4as4.pages.dev/t/topic/83602/15 "2026-06-05T14:16:23Z")

</div>

打错字母了 :xhj24:
