Cloud Mail-无限邮箱
部署次项目需要一个可以托管在cloudflare的域名,没有的可以参考博主写的免费域名推荐注册一个
简介
此项目叫cloud-mail,这里附上原作者github项目地址
这里同时给出原作者发布的demo,嫌麻烦的可以直接使用,不过求稳定的话建议还是自己部署一个,因为这个可以设置所有邮件发到指定邮箱,所以使用别人部署的服务的话信息容易泄露,不在乎的当我没说
来一张网站截图,可以自己选是否开放注册、用户多邮箱功能,所有邮箱邮件发送到指定邮箱等功能

部署教程
这里同时给出原作者的部署文档,写的很清楚,看不懂我写的可以看原作者的,我会把我部署时候遇到的问题写出来,所以看不懂的话也可以回来看看我的
原作者部署教程地址
前置条件
此项目需要一个域名才行,可以使用免费域名,只要能托管到cloudflare就可以,免费域名可以看博主发的免费域名推荐文章。
博主更推荐使用付费域名,更稳定,免费域名的话说不定哪天就寄了对吧,到时候邮件丢失没地哭了就,付费域名的话博主推荐 spaceship,这是一家国外服务商,老牌了,主打一个低价,他家的xyz域名很便宜,博主的博客用的就是这个域名,最便宜的时候50块钱可以买十年,博主就一口气买了十年,搜索:任意数字+xyz,数字最好大于等于5会便宜点,博主这个就是博主的生日,还是挺有寓意的

创建worker项目
1、fork该项目到自己的github,项目地址在此
2、登陆cloudflare,点击创建worker,导入刚刚fork的储存库


3、然后再下一页设置启动目录,将根目录的路径改成mail-worker就好了,具体见图片

4、直接构建就可以了,构建完成之后会在列表中出现cloudmail项目,点进去就可以看到访问地址了

设置环境变量
这一步是最关键的一步,截止目前还无法运行,需要添加环境变量之后才能运行
具体添加地点在这里:

添加以下变量,注意domain是json类型的,管理员账号之后需要你在注册页面注册
| 变量名 | 值 | 类型 | 作用 |
|---|---|---|---|
domain |
[“你的域名”], 示例:[“admin.admin”],多域名 [“doamin1”,“domain2”] | JSON | 网站会使用这个域名作为邮箱域名 |
admin |
管理员的邮箱,示例:admin@admin.com | 纯文本 | 对应的用户变成管理员 |
jwt_secret |
随便输入一串字符串,示例:Z7fxPq8mVL2bCr9XN1t | 纯文本 | 登录身份令牌的安全密钥 |
| domain下的域名需要和你后续访问这个网站的域名一样,否则会出问题,建议先绑定号域名在绑定 | |||
| admin邮箱会在你注册该邮箱的时候自动变为超级管理员,拥有绝对的控制权 | |||
| jwt就是一串秘钥,复杂切随意就行,不需要记下来 |
绑定数据库
1、在cloudflare左侧菜单存储和数据库,创建kv数据库,数据库名字随意
2、在cloudflare的d1数据库创建数据库,位置按需选择,名称同样随意
位置如图,这两个都需要按步骤添加,名字稍微记一下,后面绑定需要选择,只有一个的话就当我没说

3、回到worker设置界面,绑定刚刚创建的数据库
d1数据库 变量名为 db
kv数据库 变量名为 kv
绑定好之后就跟下图一样

初始化数据库
在浏览器输入如下地址进行初始化,需要绑定好域名并且跟你的环境变量里域名一致才行
https://你的自定义域名/api/init/你绑定的的jwt_secret
举个例子,你的domain是example.com,你的jwt_secret是asdfghjkl,那么你需要在浏览器输入如下地址:
https://example.com/api/init/asdfghjkl
然后就会开始自动初始化数据库(如果之前部署过只会更新不会覆盖原有数据)
显示初始化成功就完成了
注册管理员账号
打开你绑定的域名,例如example.com,然后输入你的管理员邮箱,即前面的admin邮箱,例如admin@admin.com,然后自定义密码后注册,登陆之后就可以正常使用了,管理员可以在设置里设置各种功能和开放注册等功能
启用邮件接收
到此你可以正常使用网页,但是无法收件,需要再cloudflare进行设置
1、回到cloudflare控制台,点击菜单账户主页,再点你的域名,会进入域名详情页面,在该页面左侧找到电子邮件路由并启用

3、在后续界面点击电子邮件路由并启用(该操作会在你的域名下增加几条dns解析,这是正常的)

4、启用后要设置转发到worker
在路由规则处点击下方的catch-all的开关和编辑按钮,然后选择发送到你刚刚部署的worker(catch-all的意思就是这个域名后缀收到的邮件都会遵守此规则发送到worker或者邮箱)


附件收发
设置完这一步后才能接收附件和发送附件,如果你不需要可以跳过
1、前往cloudflare的R2储存桶设置,添加一个r2储存桶(名称可以随意,最好不要有中文,位置按需选择)

2、设置r2储存桶域名,由于国内无妨访问他的默认域名,所以需要绑定自己的域名,此域名和前面的worker域名不一样,可以参考如下格式chuchun.example.com
步骤为,点击设置,然后自定义域名,如图所示


3、回到你刚刚部署的网站,登陆管理员账户,来到设置界面,找到r2储存设置,输入刚刚绑定的储存桶自定义域名

4、然后回到cloudflare worker界面,找到之前部署的cloud mail项目,绑定r2储存桶
r2存储桶 变量名为 r2

要求不高的到这里就可以不用往下看了,可以直接使用了,有发件需求的可以继续往下看
注意:免费域名基本不支持发件设置
除非你是顶级域名,免费二级域名在域名验证环节会卡住,没有顶级域名的也不用往下看了
发件设置
发件使用的是第三方服务resend
前往官网点击注册进行注册
注册完成后点击添加域名


点击添加后需要验证域名,就是前面说的免费域名不能用的步骤,可以使用cloudflare直接验证的就直接点,不能也没关系,手动添加就可以,后续会在cloudflare出现几条dns解析,这是正常的

验证完后效果如图

绑定域名之后点击创建api key,名称可以随意,添加后复制api key的值

回到resend 设置邮件状态回调接口
回调接口格式如下 https://你的项目自定义域/api/webhooks
例如:https://example.com/api/webhooks
创建时需要勾选的选项看图片里面勾选的


到此就可以收发件了,其他各种小功能的教程就看远作者文档吧,是一些小功能,个人使用的话,上面这些就够了










