小白也能看懂的自建 Cloudflare 临时邮箱教程

小白也能看懂的自建 Cloudflare 临时邮箱教程
oO天云空影Oo本教程将带你一步步搭建自己的Cloudflare临时邮箱,实现无限注册、收发邮件功能,即使是技术小白也能轻松上手。
临时邮箱有什么好处?
我们知道,很多平台注册都会使用到邮箱,我们见过的常用邮箱有 gmail
、qq
、163
等,一般会给一个固定的前缀,例如 xiaohuang@qq.com
,这时,你会发现注册 cursor
,openai
,claude
你只能用一个邮箱来注册,无法多次注册!
说人话就是方便你可以无限注册薅羊毛(当然我也知道 gmail 可以有特殊的办法使它前缀不一致发送给同一个邮箱,我没试过就不说啦)
什么是临时邮箱?
标题上已经写了,它其实就是域名邮箱,只是我们用到的这个项目取名叫做临时邮箱,它是通过你自己购买的域名来在 Cloudflare 上搭建一个邮箱服务来实现的,所以你也可以叫它自建域名邮箱。
准备工作
- 至少一个域名
- Cloudflare 账号,你可以注册一个,官网:https://www.cloudflare.com/
- cloudflare_temp_email 项目代码(记得给作者点个 star):GitHub - dreamhunter2333/cloudflare_temp_email
- 临时邮箱搭建官方文档:https://temp-mail-docs.awsl.uk/
关于域名
- 你可以寻找便宜的服务商去注册,我一般会在阿里云、腾讯云买域名,比如我为了写教程就买了一个
linuxdo.love
- 如果你想便宜,那就用不常见的后缀且域名前缀给长一点,不要学我,我这个域名续费 180 一年,18 首年!
- 在买域名的时候,你可以注意一下之后续费是多少钱一年,如果看不到,你可以尝试把 1 年加到 2 年一般就可以看到之后续费的价格了
项目原作者
原文地址:https://linux.do/t/topic/316819/68
awsl:
赞,文档链接到这篇教程了,快速开始 | 临时邮箱文档
搭建步骤
第一步,将域名交给 Cloudflare 托管
1. 打开 Clouflare,添加站点并获取 NS 服务器地址
登录 Cloudflare,点击 “添加站点”,输入你的域名,选择免费计划。Cloudflare 会扫描你现有的 DNS 记录,然后提供两个新的 NS (Name Server) 地址。
2. 打开域名服务商后台,修改 DNS 服务器
这里以腾讯云为例,其它平台(如阿里云、GoDaddy)操作逻辑完全相同。
将 Cloudflare 提供的两个 NS 地址填入,保存即可。
3. 回到 Cloudflare,完成配置
修改 NS 后需要等待一段时间(通常是几分钟到几小时)才能全球生效。回到 Cloudflare 点击 “完成,检查名称服务器”。
接着进行一些快速设置,按图示推荐配置即可。
当看到 “Cloudflare 正在保护您的站点” 的提示时,说明域名已成功托管。
4. (可选)仅设置域名邮箱转发
如果你不需要搭建完整的临时邮箱服务,只想将 任意前缀@你的域名
的邮件转发到自己的主邮箱(如 QQ、Gmail),可以按如下设置:
- 进入
Email
->电子邮件路由
。 - 创建自定义地址,将所有发往
*@你的域名
的邮件,操作设置为 “发送到电子邮件”,并填入你的主邮箱地址。
如果你需要继续搭建功能更全的临时邮箱,请往下看!
第二步、搭建临时邮箱服务
1. 创建 D1 数据库
在 Cloudflare 左侧菜单中找到 Workers 和 Pages
-> D1
,创建一个新的数据库。
进入数据库控制台,我们需要执行 SQL 来创建数据表。
打开项目代码中的 db/schema.sql
文件,复制其全部内容。
SQL 文件直达链接
将复制的 SQL 粘贴到 D1 控制台并执行。
2. 部署 Worker 后端服务
① 创建 Worker
回到 Workers 和 Pages
,创建一个新的应用程序(Worker)。
给你的 Worker 起个名字,然后点击 “部署”。
部署后,点击 “编辑代码”。
② 粘贴 Worker 代码
我们需要从项目 Release 页面下载最新的 worker.js
代码。
worker.js 代码直达地址
下载后,用文本编辑器打开 worker.js
文件,全选并复制所有代码。
将复制的代码粘贴到 Cloudflare 的代码编辑器中,完全覆盖原有代码。
③ 绑定 D1 数据库
点击 设置
-> 变量
,在 “D1 数据库绑定” 部分,点击 “添加绑定”。
变量名称填写 DB
,选择我们刚刚创建的 D1 数据库。
④ 添加兼容性标志
在 设置
-> 变量
-> 兼容性标志
中,添加 nodejs_compat
。
⑤ 配置环境变量
这是最关键的一步,请仔细阅读说明并配置。在 设置
-> 变量
-> 环境变量
中添加以下变量。
注意: 请不要直接从下方的表格里复制配置值,表格中的引号可能是中文引号导致格式错误。请从表格下方的独立代码块中复制!😅
变量名 | 类型 | 值示例 | 说明 |
---|---|---|---|
ADMIN_PASSWORDS |
JSON | ["your_password","your_password_two"] |
管理员后台密码,可以设置多个。 |
ADMIN_USER_ROLE |
纯文本 | admin |
用于标识管理员角色的名称,拥有此角色的用户可以访问后台。 |
DEFAULT_DOMAINS |
JSON | [""] 或 ["yourdomain.com"] |
未登录用户可用的域名。设置为空数组 [""] 表示未登录用户不能创建邮箱。 |
DOMAINS |
JSON | ["linuxdo.love", "goai.love"] |
你拥有的、并已托管到 Cloudflare 的所有可用域名。 |
ENABLE_AUTO_REPLY |
纯文本 | false |
是否允许自动回复邮件。 |
ENABLE_USER_CREATE_EMAIL |
纯文本 | true |
是否允许用户随机创建邮箱地址。 |
ENABLE_USER_DELETE_EMAIL |
纯文本 | true |
是否允许用户删除邮件。 |
JWT_SECRET |
纯文本 | (需要生成一个) | 生成一个 JWT 密钥。可使用此工具生成。 |
NO_LIMIT_SEND_ROLE |
纯文本 | admin |
可以无限发送邮件的角色。 |
USER_ROLES |
JSON | [{"domains":["linuxdo.love"],"prefix":"","role":"vip"},{"domains":["linuxdo.love"],"prefix":"","role":"admin"}] |
设置用户角色,可以定义不同角色可用的域名和前缀。 |
配置值复制区:
ADMIN_PASSWORDS
1 | ["your_password_1", "your_password_2"] |
DEFAULT_DOMAINS
(未登录用户不可用)
1 | [""] |
DOMAINS
(替换成你的域名)
1 | ["linuxdo.love"] |
USER_ROLES
(替换成你的域名)
1 | [{"domains":["linuxdo.love"],"prefix":"","role":"vip"},{"domains":["linuxdo.love"],"prefix":"","role":"admin"}] |
配置截图示例:
完成所有变量配置后,**务必点击 “保存并部署”**。
⑥ 配置 KV 缓存
在 Cloudflare 左侧菜单 Workers 和 Pages
-> KV
,创建一个新的命名空间(例如 KV
)。
回到 Worker 的 设置
-> 变量
,在 “KV 命名空间绑定” 部分添加绑定。变量名填写 KV
,选择刚刚创建的 KV 命名空间。
**再次点击 “保存并部署”**。
⑦ 配置邮件转发【非常重要,必须配置】
回到你域名的 Email
-> 电子邮件路由
,添加一条新的路由规则。
将操作设置为 “发送给 Worker”,并选择我们刚刚部署的 Worker。
至此,恭喜你!临时邮箱的后端服务已经全部搭建完成!
第三步、搭建前端操作界面
我们需要部署一个静态网站作为邮箱的前端界面。
1. 生成前端代码
项目提供了一个在线生成器,可以方便地将你的 Worker API 地址打包进前端代码。
前端生成器直达地址
在生成器页面,填入你的 Worker 域名(例如 your-worker-name.your-account.workers.dev
),然后点击生成并下载 frontend.zip
。
注意: 下图中的 “兹定于域” 是笔误,应为 “自定义域”,指的就是你的 Worker 域名。
2. 部署 Pages 前端
在 Cloudflare 左侧菜单 Workers 和 Pages
,切换到 Pages
标签,选择 “上传资产” 来创建一个新应用。
给你的前端项目起个名字(例如 temp-mail-ui
),然后将刚刚下载的 frontend.zip
文件拖拽上去。
点击 “部署站点”。
3. 绑定自定义域名
部署成功后,进入 Pages 项目的 自定义域
设置,将你的主域名(例如 linuxdo.love
)或一个子域名(例如 mail.linuxdo.love
)绑定到这个 Pages 项目。
等待几分钟,DNS 记录生效后,你就可以通过你的域名访问临时邮箱界面了!
第四步、测试与使用
1. 登录管理员后台
小技巧: 连续点击页面左上角的 Logo 五次,可以快速呼出管理员登录框。😛
输入你在环境变量 ADMIN_PASSWORDS
中设置的密码。
登录后即可看到管理面板。
2. 测试接收邮件
在主界面,你可以随机生成或自定义一个邮箱地址。
用你的其他邮箱(如 QQ 邮箱)给这个地址发送一封测试邮件。
稍等片刻,回到临时邮箱页面,刷新收件箱,应该就能看到收到的邮件了。
第五步、配置发送邮件功能
默认情况下,临时邮箱只能收件。我们可以借助第三方邮件服务(如 Resend)来实现发件功能。
1. 注册 Resend 并获取 API Key
访问 https://resend.com/ 注册一个账号。
登录后,在 API Keys
页面创建一个新的 API Key,并立即复制并保存好这个 Key,因为它只会出现一次。
2. 在 Resend 中添加并验证域名
在 Domains
页面添加你的域名,并根据提示在 Cloudflare DNS 中添加指定的记录来完成域名所有权验证。
3. 配置 Worker 环境变量
回到我们之前部署的 Worker 设置
-> 变量
-> 环境变量
,添加一个新的环境变量:
- Key:
RESEND_TOKEN
- Value: 粘贴你刚刚从 Resend 获取的 API Key
**点击 “保存并部署”**。
4. 测试发送邮件
现在,回到你的临时邮箱界面,点击邮件详情页的 “回复” 或新建邮件按钮,就可以发送邮件了。
发送成功!👍
踩坑记录
在配置环境变量,特别是 USER_ROLES
这种复杂的 JSON 字符串时,一定要确保使用的是英文标点符号。从网页或文档中直接复制可能会把英文双引号 "
变成中文双引号 ”
,导致 Worker 运行时解析 JSON 出错。
建议在文本编辑器或代码编辑器中编辑好再粘贴,或者使用 Cloudflare Worker 的 “批量编辑” 模式,更容易发现格式问题。
至此,整个教程结束,祝你使用愉快!
本文参考了原始教程,感谢原作者的分享。