Cloud Mail 小白保姆教程-界面部署
Cloud Mail 小白保姆教程-界面部署
注意事项
WARNING: 首先你要注册一个域名,如果你要拿来注册一些网站或者游戏比如steam,不要用 top、xyz 这种廉价域名,有可能会被网站当临时邮箱拦截。
1. 绑定域名
注册Cloudflare账号
- 注册并登录到Cloudflare控制台
- 选择免费的计划
- 设置DNS
- 不同的域名厂商修改DNS的方式都差不多,这里以华为云为例
- 设置完成后可能要等几分钟,期间可以刷新浏览器查看状态
- 完成后的界面会显示你的域名已经绑定成功
2. 创建Worker项目
导入GitHub仓库
- 到项目仓库fork项目代码到你的GitHub仓库
- 回到Cloudflare控制台,找到workers页面
- 导入你的GitHub仓库代码
- 设置启动目录
- 等待构建部署完成
- 构建完成后,项目会出现在worker列表中,点击名字可以进入查看和设置
3. 设置环境变量
服务还需要设置一些环境变量和绑定数据库才能正常运行:
| 变量名 | 值 | 类型 | 作用 |
|---|---|---|---|
| domain | [“你的域名”],示例:[“mornglow.top”],多域名:[“domain1”,”domain2”] | JSON | 网站会使用这个域名作为邮箱域名 |
| admin | 管理员的邮箱,示例:admin@mornglow.top | 纯文本 | 对应的用户变成管理员 |
| jwt_secret | 随便输入一串字符串,示例:Z7fxPq8mVL2bCr9XN1t | 纯文本 | 登录身份令牌的安全密钥 |
初始化数据库
- 浏览器输入:
https://你的自定义域名/api/init/你绑定的jwt_secret - 这个操作会自动初始化数据库(如果之前部署过只会更新不会覆盖原有数据)
4. 绑定数据库
创建数据库
- 找到左侧菜单”存储和数据库”
- 创建KV数据库,数据库名字随意
- 创建D1数据库,数据库名字随意,位置选择离你近的地方
绑定数据库
回到worker设置界面,绑定刚刚创建的数据库:
- D1数据库,变量名为
db - KV数据库,变量名为
kv
5. 启用邮件接收
设置完成后才能接收邮件:
- 回到Cloudflare控制台,点击菜单”账户主页”,再点击你的域名
- 菜单栏会发生变化,启用电子邮件
- 设置转发到worker
6. 附件收发
设置完这一步后才能接收附件和发送附件,如果你不需要可以跳过:
设置R2存储
- 找到R2对象存储,创建存储桶,桶名字可以随便填,位置选择离你近的地方
- 设置自定义域名 (不要设置跟worker自定义域一样)
- 将自定义域名添加到项目设置里面
- 回到worker绑定刚才创建的R2存储桶,变量名为
r2
替代方案
如果你用不了R2,可以用KV存储替代,访问域名改成worker自定义域
7. 邮件发送
使用第三方服务Resend发送邮件:
- 浏览器输入resend.com注册账号
- 添加域名并等待验证完成
- 创建API Key
- 回到项目网站设置,设置邮件状态回调接口
- 回调接口地址:
https://你的项目自定义域/api/webhooks - 选中图中对应选项
8. 人机验证
设置这一步后可以开启人机验证,防止网站被机器人批量注册:
- 菜单栏找到 Turnstile
- 添加你的域名,名字随意
- 复制这两个密钥
- 回到项目设置页面设置密钥
9. TG和其他邮箱转发
Telegram转发
- 在TG搜索找到对应机器人,创建机器人并获取token
- 给机器人发送一条消息
- 浏览器输入:
https://api.telegram.org/bot你的机器人TOKEN/getUpdates获取chat_id- 如果获取不到,就再给机器人发几条消息
- 设置token和chat_id
转发到其他服务商邮箱
- 在Cloudflare验证邮箱
- 设置邮箱转发
10. 项目更新
项目更新的具体步骤可以参考官方文档或项目仓库的更新说明。
完成
完成以上步骤后,你就可以访问你的Cloud Mail服务了!浏览器输入你绑定的自定义域名,就可以看到登录注册页面,开始使用你的Cloud Mail服务了。
总结
Cloud Mail是一个基于Cloudflare Worker的邮件服务,通过上述步骤,你可以轻松部署自己的Cloud Mail服务。这个服务提供了完整的邮件收发功能,支持附件、邮件转发、人机验证等特性,适合个人或小团队使用。
希望这篇小白保姆教程能够帮助你顺利部署Cloud Mail服务!
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.