基于 Cloudflare 的简约响应式邮箱服务,支持邮件发送、附件收发

Github仓库地址:

https://github.com/maillab/cloud-mail

功能介绍

  • :money_bag: 低成本使用: 可部署到 Cloudflare Workers 降低服务器成本
  • :laptop: 响应式设计:响应式布局自动适配PC和大部分手机端浏览器
  • :e_mail: 邮件发送:集成Resend发送邮件,支持群发,内嵌图片和附件发送,发送状态查看
  • :shield: 管理员功能:可以对用户,邮件进行管理,RABC权限控制对功能及使用资源限制
  • :package: 附件收发:支持收发附件,使用R2对象存储保存和下载文件
  • :bell: 邮件推送:接收邮件后可以转发到TG机器人或其他服务商邮箱
  • :satellite_antenna: 开放API:支持使用API批量生成用户,多条件查询邮件
  • :chart_increasing: 数据可视化:使用ECharts对系统数据详情,用户邮件增长可视化显示
  • :artist_palette: 个性化设置:可以自定义网站标题,登录背景,透明度
  • :robot: 人机验证:集成Turnstile人机验证,防止人机批量注册

搭建教程:youtube视频,也是我看到这个项目的地方

https://www.youtube.com/watch?v=3nzW1PUbkDs


搭建教程:文字简述版

前期准备

1.一个CF账号 https://www.cloudflare.com
2.一个已托管于CF的域名
3.Resend账号 https://resend.com

操作步骤

1.前往Github仓库Fork该项目(觉得项目优秀请支持作者 :star: )

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,至此即可正常发送邮件
8 个赞

用的邮件路由吧,域名不想托CF用不了

新人来学习一下

感谢分享

嗯,是的~

不托管CF的用serv00的邮件系统也不错,我都在用

或者用企业微信的也行,就是这个限制创建邮箱数量

我的用就是SERV00,挺好用的。

这个方法还可以,不过我已经部署过了,来了还是支持下~

之前就部署的这个,用了好几个月,挺好的

学习学习

来学习一下!

域名邮箱收信就很好。

vps8 支持邮件路由


我学习到可以第九登录及收件,出现这个提示,进不去登录邮箱的界面。大佬能给解决下吗?初始化已经成功显示success了。

你部署时没设置domain这个环境变量啊?

打错字母了 :xhj24:

1 个赞