CloudMail 一个基于Workers无限收发邮箱的开源项目

1255 字
6 分钟
CloudMail 一个基于Workers无限收发邮箱的开源项目

前言#

只需要一个域名,就可以创建无限个的邮箱地址,类似各大邮箱平台的体验。本项目可部署到 Cloudflare Workers,个人 0 服务器成本,搭建属于自己的邮箱服务。

当然,你也能用它来管理不同平台的账号邮箱,把注册邮箱和私人邮箱分开,更加安全,可以完全隐藏自己的真实邮箱

前提条件: 你的域名必须已托管至 Cloudflare(即 NS 服务器指向 Cloudflare)。

(昨天还想着自己用 WPF 做一个调用 Resend API 的项目呢…今天就发现了更好的开源方案)


第一部分:部署 CloudMail 收件服务#

整体流程:Fork 仓库 → 创建 Worker → 配置环境变量 → 创建存储资源并绑定 → 设置域名邮件路由 → 初始化数据库 → 注册管理员

1. Fork 仓库并创建 Worker#

首先 Fork 仓库:cloud-mail

然后在 Cloudflare Dashboard 中创建 Worker,选择从 GitHub 导入

点开 高级设置,将路径设置为 /mail-worker,这一步不要漏掉。

从Github导入Worker
从Github导入Worker

2. 配置环境变量#

在 Worker 的设置 → 变量和机密中,添加以下环境变量:

变量名必需用途
domain邮箱域名。多域名用 JSON 数组格式,例如 ["example.com","example2.com"]
admin管理员邮箱地址,例如 admin@example.com
jwt_secretJWT 密钥,随便输入一串字符串即可,不要包含特殊字符

⚠️ 建议: 如果你还没有绑定自定义域名到 Worker,推荐先绑定再配置环境变量。绑定域名的方式见优选 IP 文章。

环境变量配置
环境变量配置

3. 创建存储资源(D1 + KV + R2)#

CloudMail 需要三种存储资源,分别用于数据库、缓存和附件存储:

资源类型推荐命名用途
D1 数据库Cloud-mail-DB存储邮件数据
KV 存储Cloud-mail-KV缓存与配置
R2 存储桶Cloud-mail-R2邮件附件

按推荐名称创建即可,当然你也可以用自己的命名。

创建D1数据库
创建D1数据库

创建KV存储
创建KV存储

创建R2存储桶
创建R2存储桶

创建完成后,回到 Worker 的设置 → 绑定页面,将三个资源全部绑定上去:

⚠️ 绑定的时候变量名必须严格为 dbkvr2,否则 Worker 无法正确读取。

绑定KV和DB变量
绑定KV和DB变量

绑定设置详情
绑定设置详情

4. 配置域名邮件路由#

进入 Cloudflare 的 电子邮件 → 电子邮件路由 页面,将收到的邮件转发到刚才创建的 Worker 项目。

如果你的域名刚托管过来,可能需要先点击启用电子邮件路由,Cloudflare 会自动添加所需的 MX 记录。

域名邮件路由设置
域名邮件路由设置

5. 初始化数据库并注册管理员#

在浏览器中访问以下地址来初始化数据库:

https://你的worker域名/api/init/你的jwt_secret

看到浏览器返回 success 即表示初始化成功。

然后直接访问:

https://你的worker域名/

在页面上 注册管理员账号。管理员账号就是你在步骤 2 中设置的 admin 环境变量值。

到这一步,CloudMail 的收件功能就部署完成了 🎉

管理员登录界面
管理员登录界面


第二部分:配置 Resend 发件服务#

Cloudflare Workers 本身不支持发邮件(25 端口被封禁),所以我们需要借助第三方发件服务。Resend 提供了免费额度(每月 3000 封),对个人使用来说足够了。

整体流程:注册 Resend → 添加域名并验证 DNS → 创建 API Key → 配置 Webhook 回调 → 填入 Token

1. 注册 Resend 并添加域名#

前往 Resend 官网 注册账号,然后在控制台中添加你的域名。

添加后,Resend 会提供几条 DNS 记录(SPF、DKIM 等),你需要到 Cloudflare 中添加这些记录来完成域名验证。

Resend添加域名
Resend添加域名

2. 创建 API Key#

在 Resend 控制台的 API Keys 页面创建一个新的 Key,复制保存好,后面要用。

创建Resend API Key
创建Resend API Key

3. 配置 Webhook 回调#

在 Resend 的 Webhooks 页面,添加一个新的 Webhook,用于接收邮件发送状态的回调通知:

  • Endpoint URL 填写:https://你的worker域名/api/webhooks
  • Events 权限选择如下图所示:

添加Webhook
添加Webhook

Webhook权限设置
Webhook权限设置

4. 填入 Resend Token 到 CloudMail#

回到 CloudMail 的管理员后台,在设置页面中填入刚才复制的 Resend API Key:

填入Resend Token
填入Resend Token


结语#

至此,CloudMail 已经完成全部部署。

  • 收邮件由 Cloudflare Email Routing + Workers 负责。
  • 发邮件由 Resend 提供 API 支持。

整个方案几乎不需要服务器,只需要一个托管到 Cloudflare 的域名,就能拥有自己的邮箱系统。

另外,CloudMail 后台还支持将收到的邮件自动转发到自己的真实邮箱,即使不经常登录后台,也不会错过任何新邮件。

过程中遇到问题可以直接在评论区留言,看到都会回复的

文章是摆烂技术站原创,需要转载等用途请联系WeChatOfficialAccount@9ll.uk

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
CloudMail 一个基于Workers无限收发邮箱的开源项目
https://9ll.uk/posts/network/cloudmail/
作者
HY
发布于
2026-07-13
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
HY
Hello, I'm HY.
公告
欢迎关注微信公众号「折腾进行时」
分类
标签
最新动态
站点统计
文章
24
分类
8
标签
87
总字数
44,491
运行时长
0
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.15.3
文章许可
CC BY-NC-SA 4.0