Github仓库地址:
https://github.com/maillab/cloud-mail
功能介绍
低成本使用: 可部署到 Cloudflare Workers 降低服务器成本
响应式设计:响应式布局自动适配PC和大部分手机端浏览器
邮件发送:集成Resend发送邮件,支持群发,内嵌图片和附件发送,发送状态查看
管理员功能:可以对用户,邮件进行管理,RABC权限控制对功能及使用资源限制
附件收发:支持收发附件,使用R2对象存储保存和下载文件
邮件推送:接收邮件后可以转发到TG机器人或其他服务商邮箱
开放API:支持使用API批量生成用户,多条件查询邮件
数据可视化:使用ECharts对系统数据详情,用户邮件增长可视化显示
个性化设置:可以自定义网站标题,登录背景,透明度
人机验证:集成Turnstile人机验证,防止人机批量注册
搭建教程:youtube视频,也是我看到这个项目的地方
搭建教程:文字简述版
前期准备
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
值:你想要的管理员邮箱,例:[email protected]
安全密钥变量:
类型:文本
变量名称: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,至此即可正常发送邮件
