cloudflare临时邮箱创建指南

写在前面:因为cli和UI部署不方便更新,而且也有点过于繁琐,所以写了如何使用Github Action部署,在部署过程中也是遇到了很多莫名其妙的报错,最终有了这份成功的经验
功能说明:
- 收发件功能
- 用户注册
- 用户角色(admin,vip,user)
- admin,vip可无限发件,user需管理员后台设置
- 未启用webhook
- 未启用网站访问密码
事先准备:
- 一个绑定到cloudflare的域名:假设是example.com,所有代码配置中的example.com替换成你的根域名
- cloudflare账号
- github账号:可以不使用,但是本文的部署方法是Github Action所以需要
- Resend网站:白嫖发件服务的,这里需要得到api填入后端变量
- 官方临时邮箱文档:更多功能及详细设置请访问官方文档
- 官方项目
- 参考:【教程】小白也能看懂的自建Cloudflare临时邮箱教程(域名邮箱)
cloudflare操作
1. 创建D1数据库
- 进入cloudflare控制台,找到储存和数据库,展开看到D1 SQL 数据库
- 创建新的数据库,记录名称和ID
- 进入新的D1数据库-控制台,将下列代码块复制到输入框,点击执行
1 | CREATE TABLE IF NOT EXISTS raw_mails ( |
3. 创建kv空间
- 同样在储存和数据库-找到KV
- 创建新的KV空间,记录名称和ID
4. 创建前端页面
5. 配置邮件转发
Github操作
1. Fork官方项目
2. 打开仓库的 Actions 页面,找到 Deploy Backend Production 和 Deploy Frontend,点击 enable workflow 启用 workflow,这里并不是运行!!!
3. 然后在仓库页面 Settings -> Secrets and variables -> Actions -> Repository secrets, 添加以下 secrets(变量名和变量):
CLOUDFLARE_ACCOUNT_ID
- Workers 和 Pages页面右侧复制
- Workers 和 Pages页面右侧复制
- CLOUDFLARE_API_TOKEN
- Workers 和 Pages页面管理API令牌创建一个api
- 你的cloudflare api,建议至少要有workers、D1、Pages、KV的权限
BACKEND_TOML
- 把下面的内容进行相应替换
- JWT_SECRET生成器
- 更多变量设置
- 更多附加功能
1 | name = "cloudflare_temp_email" |
FRONTEND_ENV
- 把下面的VITE_API_BASE替换成你的后端域名
1 | VITE_API_BASE=https://back-end.example.com |
FRONTEND_NAME
- 你在cloudflare创建的前段pages项目名称(不是前端域名!!!)
- 可选内容(我并没有选用)
- 略
4. 打开仓库的 Actions 页面,找到 Deploy Backend和 Deploy Frontend,点击 Run workflow 选择分支手动部署
5. Github Actions自动更新
- 打开仓库的 Actions 页面,找到 Upstream Sync,点击 enable workflow 启用 workflow
- 如果 Upstream Sync 运行失败,到仓库主页点击 Sync 手动同步即可
- 修改 Upstream Sync 的 schedule 配置可自定义更新间隔,参考 cron 表达式
创建前端页面
- 进入下列链接直达,在如下样式的输入框里输入你的完整后端地址(https://back-end.example.com),之后会生成一个压缩包下载
-
链接直达
- 点击Workers和Pages,选择Pages,选择上传创建,文件选取刚才下载的文件
-
在Pages自定义域里添加你的自定义域名
mail.example.com
-
测试前端页面
- 进入你的前端域名,mail.example.com
- admin 后台可以点击五次 logo 进入,或者 mail.example.com/admin
配置邮件转发
-
在cloudflare的帐户主页,点进你所持有的根域名,找到新的页面侧边栏的的电子邮件选项
-
电子邮件展开,点进电子邮件路由,切换到路由规则
-
启用Catch-all 地址并编辑
- 操作:发送到worker
- 目标位置:选择你的后端项目名称
- 这个的作用是把所有@example.com的邮箱邮件转到后端,接收到域名邮箱里
-
(额外选择)自定义地址,创建地址,这会创建单独的一个[email protected]的转发规则,如果想要把发送到[email protected]的邮件都转发到自己的其余邮箱,选择转发到电子邮件
- 转发到的电子邮箱需要在目标地址里添加并验证
- 经测试发现自定义地址的规则会覆盖Catch-all的规则,即如果Catch-all转发到workers,而[email protected]设定转发到[email protected],那么在域名邮箱里[email protected]这个邮箱不会收到邮件,而是全部转发到[email protected]
配置发送邮件(使用resend)
- 进入网站,注册账号(这里可以原汤化原食,直接用你刚设置好的域名邮箱注册
- 需要在Domins里绑定你的域名 example.com,它会让你添加解析记录,按照它的要求在cloudflare域名的侧边栏DNS里添加相应种类的解析
- 创建api key,这里的api key就是你在后端项目里要填的RESEND_TOKEN
评论
评论插件加载失败
正在加载评论插件