小白也能看懂的自建Cloudflare域名邮箱教程

首先我们需要有托管在Cloudflare上面的域名(基本要求),其次开始教程

第一步:

图片[5]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程

Cloudflare后台找到存储和数据库-D1 SQL数据库-右上角点击创建数据库-名称任意点击创建 如下图

第二步:

复制下面代码后回到Cloudflare刚刚的位置找到控制台把内容粘贴进去点击执行

图片[8]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程
点我打开复制
CREATE TABLE IF NOT EXISTS raw_mails (
    id INTEGER PRIMARY KEY,
    message_id TEXT,
    source TEXT,
    address TEXT,
    raw TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX IF NOT EXISTS idx_raw_mails_address ON raw_mails(address);

CREATE TABLE IF NOT EXISTS address (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT UNIQUE,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX IF NOT EXISTS idx_address_name ON address(name);

CREATE TABLE IF NOT EXISTS auto_reply_mails (
    id INTEGER PRIMARY KEY,
    source_prefix TEXT,
    name TEXT,
    address TEXT UNIQUE,
    subject TEXT,
    message TEXT,
    enabled INTEGER DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX IF NOT EXISTS idx_auto_reply_mails_address ON auto_reply_mails(address);

CREATE TABLE IF NOT EXISTS address_sender (
    id INTEGER PRIMARY KEY,
    address TEXT UNIQUE,
    balance INTEGER DEFAULT 0,
    enabled INTEGER DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX IF NOT EXISTS idx_address_sender_address ON address_sender(address);

CREATE TABLE IF NOT EXISTS sendbox (
    id INTEGER PRIMARY KEY,
    address TEXT,
    raw TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX IF NOT EXISTS idx_sendbox_address ON sendbox(address);

CREATE TABLE IF NOT EXISTS settings (
    key TEXT PRIMARY KEY,
    value TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY,
    user_email TEXT UNIQUE NOT NULL,
    password TEXT NOT NULL,
    user_info TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX IF NOT EXISTS idx_users_user_email ON users(user_email);

CREATE TABLE IF NOT EXISTS users_address (
    id INTEGER PRIMARY KEY,
    user_id INTEGER,
    address_id INTEGER UNIQUE,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX IF NOT EXISTS idx_users_address_user_id ON users_address(user_id);

CREATE INDEX IF NOT EXISTS idx_users_address_address_id ON users_address(address_id);

CREATE TABLE IF NOT EXISTS user_roles (
    id INTEGER PRIMARY KEY,
    user_id INTEGER UNIQUE NOT NULL,
    role_text TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX IF NOT EXISTS idx_user_roles_user_id ON user_roles(user_id);

CREATE TABLE IF NOT EXISTS user_passkeys (
    id INTEGER PRIMARY KEY,
    user_id INTEGER NOT NULL,
    passkey_name TEXT NOT NULL,
    passkey_id TEXT NOT NULL,
    passkey TEXT NOT NULL,
    counter INTEGER DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX IF NOT EXISTS idx_user_passkeys_user_id ON user_passkeys(user_id);

CREATE UNIQUE INDEX IF NOT EXISTS idx_user_passkeys_user_id_passkey_id ON user_passkeys(user_id, passkey_id);

第三步:

点击Wokers和Pages,创建一个新的Woker,名字任意点击部署,随后部署成功后点击回到刚刚创建woker的地方点击设置找到兼容性标志,然后输入nodejs_compat点击部署

图片[9]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程
图片[10]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程

部署后点击绑定选择刚刚创建的数据库,这里注意,变量名称必须为DB,然后点击绑定

第四步:

部署Woker后找到编辑代码

图片[13]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程

进入之后点击左上角的文件夹图标,然后右键点击woker.js这个文件选择删除,然后再点我下载文件

图片[14]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程

下载好新的woker.js文件后再在左边文件里面空白处右键点击选择上传文件,把刚刚下载的文件上传然后点击部署

图片[15]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程

第五步:

在设置里面找到域和路由这里选择添加,然后绑定自己的任意子域名,然后就是添加变量

下面我把变量代表的含义发出来自己对照着填写即可

注意:请不要从表格里直接复制配置,你可以下拉到表格下方去复制,表格内的引号会自动将英文的转成中文的,所以请去下面代码块内复制! 

请仔细查看参数说明,不要直接复制就不管了

类型说明
ADMIN_PASSWORDSJSON[“your_password”,“your_password_two”]admin 控制台密码, 不配置则不允许访问控制台,大白话:管理员密码不配置你怎么管理?可以多个,你也可以只配置一个!
ADMIN_USER_ROLE纯文本adminadmin 角色配置, 如果用户角色等于 ADMIN_USER_ROLE 则可以访问 admin 控制台 大白话:如果角色是admin的用户就可以直接看到admin控制台
DEFAULT_DOMAINSJSON[“”] 或者 [“你自己的域名”]这里给了一个空数组,也就是说没有登录的用户没有可用的域名,如果你想给没有登录的用户使用域名,你可以加上自己的域名[“各自域名”] 它是一个数组也可以多个
DOMAINSJSON[“你的域名.love”]这里是用来配置你的域名的,例如我的域名就是linuxdo.love,实际上还可以添加多个,例如[“linuxdo.love”,“goai.love”],当然配置的域名都得接入cloudflare哈!没接入你配了也没用!
ENABLE_AUTO_REPLY纯文本false是否允许自动回复邮件,官方默认是false,我们也设置为false
ENABLE_USER_CREATE_EMAIL纯文本true是否允许用户随机创建邮箱账户,默认为true就行,这样就可以创建不同的邮件账户啦!
ENABLE_USER_DELETE_EMAIL纯文本true是否允许用户删除邮件,如果你不想用户删除邮件改成false就行
JWT_SECRET纯文本自己去生成一个!这里需要一个密钥,打开GitHub 生成后复制“JWT_SECRET”里的内容
NO_LIMIT_SEND_ROLE纯文本admin可以无限发送邮件的角色,我设置成了admin,也就是说admin角色的用户可以无限发送邮件了!
USER_ROLESJSON[{“domains”:[“你的域名.love”],“prefix”:“”,“role”:“vip”},{“domains”:[“你的域名.love”],“prefix”:“”,“role”:“admin”}] 别从这里复制从表格下的代码块复制这个不然报错设置两个系统角色,一个为vip一个为admin!

ADMIN_PASSWORDS

["your_password","your_password_two"]

DEFAULT_DOMAINS

[""]
["你自己的域名"]

DOMAINS

["你的域名.love"]

USER_ROLES

[{"domains":["你的域名"],"prefix":"","role":"vip"},{"domains":["你的域名"],"prefix":"","role":"admin"}]

如何配置?看图

图片[18]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程

第六步:

配置KV缓存,创建实例,名字自定义,完成后再点到最开始创建的Woker页面去把这个KV绑定一下

这里变量名一定要写KV

图片[21]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程

配置邮件转发【非常重要,必须配置】

图片[22]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程

自此!恭喜你!临时邮箱后端服务搭建完成!

第七步:

搭建前端服务,也就是操作界面!我们需要生成前端代码,打开官方文档,一个生成器!

直达地址

来到这里输入一开始我们填写的自定义域名,然后点击生成再下载

图片[23]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程

第八步:

返回Cloudflare,按照箭头指示点击开始使用,把刚刚下载的压缩包上传

图片[24]-博客-技术-分享-免费小白也能看懂的自建Cloudflare域名邮箱教程

最后一步,添加自定义域名就可以正常使用了恭喜你获得一个自定义域名!!!

如果需要发送信息的话跟着下一步

第九步:

https://resend.com/ 注册个账号,点击domain,然后地区我选择的美国,再点击Cloudflare按钮,点击授权

然后点到API Keys右上角添加一个密钥,名称自定义,添加成功后不要忘记点击复制密钥,返回是无法查看的需要重新生成,然后再回到Cloudflare到woker里面再添加一个变量,变量名称为RESEND_TOKEN,值就是刚刚复制的密钥

任务完成

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

文章版权声明 1 本网站名称:顾熙博客
2 本站永久网址:https://blog.a686.de
3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长 QQ407177932进行删除处理。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
© 版权声明
THE END
喜欢就支持一下吧!
点赞9赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容