【教程】小白也能看懂的自建Cloudflare临时邮箱教程(域名邮箱)

2026-06-09 20:47:04 309阅读 0评论 SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

此版本为2024年12月旧版本教程,请参照2026年新版本

教程翻新版本:

【教程】2026版 小白也能看懂的自建Cloudflare临时邮箱教程(域名邮箱) 文档共建
从 【教程】小白也能看懂的自建Cloudflare临时邮箱教程(域名邮箱) 继续 你可以通过右边的目录快速定位你想查看的模块~ 文档如果没有需要修改的错误和需要新补充的,还请各位佬友不要随意改标题和内容! 总结佬友们补充的教程(2026年3月5日更新) 有很多热心的佬友出了别的版本的教程,例如这位佬友写了用Claude Code + CLI的形式去部署,其实项目是支持CLI的,只是说对…

写在前面

我一开始也没怎么用过Cloudflare,就最早的时候是用它来部署过Openai的接口中转,防止被墙(已经是很早很早之前的事情了,已经失效了),然后呢那天我打开cloudflare临时邮箱项目的官方教程文档,给我搞的一脸懵的,不过好在最后是成功搭建好了!写这个教程,也是为了帮助那些想搭,但是弄不明白的佬友,希望可以帮到你!

注意

此为临时邮箱,如果你需要注册自己觉得比较重要的平台且账号数据需要保留的情况下,请不要使用临时邮箱注册!!! 除非你打算一直使用你的域名邮箱!且自己有能力一直维护自己的邮箱服务!

我为什么想搭临时邮箱?

起初是一天晚上,半夜没睡着,然后不知道抽什么风,就想去域名注册看看,看能不能弄个好看点的域名,然后我试啊试,最终注册了一个goai.love,我想着不浪费的情况下,用它来做点什么,于是首先想到的就是搭建临时邮箱供给自己的朋友们一起使用,对打算搭个私有的临时邮箱

【教程】小白也能看懂的自建Cloudflare临时邮箱教程(域名邮箱)

临时邮箱有什么好处?

我们知道,很多平台注册都会使用到邮箱,我们见过的常用邮箱有 gmailqq163等,一般会给一个固定的前缀,例如xiaohuang@qq.com,这时,你会发现注册cursoropenaiclaude你只能用一个邮箱来注册,无法多次注册!说人话就是方便你可以无限注册薅羊毛(当然我也知道gmail可以有特殊的办法使它前缀不一致发送给同一个邮箱,我没试过就不说啦)

什么是临时邮箱?

标题上已经写了,它其实就是域名邮箱,只是我们用到的这个项目取名叫做临时邮箱,它是通过你自己购买的域名来在Cloudflare上搭建一个邮箱服务来实现的,所以你也可以叫它自建域名邮箱

【教程】小白也能看懂的自建Cloudflare临时邮箱教程(域名邮箱)

准备

  • 至少一个域名
  • Cloudflare账号,你可以注册一个,官网:https://www.cloudflare.com/
  • cloudflare_temp_email项目代码(记得给作者点个star):GitHub - dreamhunter2333/cloudflare_temp_email: CloudFlare free temp domain email 免费收发 临时域名邮箱 支持附件 IMAP SMTP TelegramBot · GitHub
  • 临时邮箱搭建官方文档:https://temp-mail-docs.awsl.uk/ (佬友也可以去看官方文档搭建)

关于域名

  • 你可以寻找便宜的服务商去注册,我一般会在阿里云、腾讯云买域名,比如我为了写教程就买了一个linuxdo.love
  • 如果你想便宜,那就用不常见的后缀且域名前缀给长一点,不要学我,我这个域名续费180一年,18首年!
  • 在买域名的时候,你可以注意一下之后续费是多少钱一年,如果看不到,你可以尝试把1年加到2年一般就可以看到之后续费的价格了

项目原作者

awsl:

赞,文档链接到这篇教程了,快速开始 | 临时邮箱文档

第一步,将域名交给Cloudflare托管

打开Clouflare,配置转移域

image2560×1313 173 KB
image1533×961 51 KB
image1501×1075 64.8 KB
image2468×1274 232 KB
image1613×1257 172 KB

打开域名服务商,这里以我的腾讯为例,其它平台都是同理的

image1695×978 58.9 KB
image356×411 8.38 KB
image2209×700 48.2 KB
image1125×972 32.1 KB
image1045×704 36.1 KB
image516×148 5.99 KB

回到Cloudflare继续,一般改过之后需要等一阵子才会生效(大概10分钟)

image1351×1138 68.5 KB
image949×881 42.1 KB
image1662×890 54.1 KB
image1191×908 29.8 KB

image1261×592 81.6 KB
image1128×833 34.6 KB
image1135×677 31 KB
image1389×705 33.2 KB
image1267×832 42.5 KB
image1343×558 29.4 KB

如果你不需要搭临时邮箱服务,只需要自己的域名邮箱

自此你可以设置成发送到电子邮件,也就是说这个xxx所有的邮件@linuxdo.love都会转发到你指定的邮箱里去
例如:

  • xiaohuang@linuxdo.love → xiaohuang@qq.com
  • ilovelinuxdo@linuxdo.love → xiaohuang@qq.com
    image1212×647 19.3 KB

如果你需要继续搭建临时邮箱,请往下看!

搭建临时邮箱服务

创建D1数据库

image1774×1029 58.6 KB
image1178×642 20.6 KB

打开项目地址,找到db/schema.sql

直达请点我

image2016×1303 166 KB
image1679×1090 64.5 KB
image1370×343 13.9 KB
image1655×958 43.8 KB

部署邮箱服务后端

image1704×945 76.4 KB
image1431×934 29.4 KB
image1570×1103 64.1 KB

nodejs_compat可以在这里复制!

image1740×1311 113 KB
image2241×1139 96.1 KB

代码直达地址,点我!

下载代码后,打开代码直接全部复制!

image2549×1186 179 KB
image2470×1192 273 KB

然后我们返回,继续配置D1数据库!

image2549×1253 211 KB
image2203×1300 136 KB
image1925×1192 116 KB
image1837×1218 116 KB
image1203×617 32 KB

接下来,我们设置环境变量

你可以直接按我给的配置来配,如果你需要额外的配置可以查阅官方文档

文档直达

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

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

类型 说明
ADMIN_PASSWORDS JSON [“”,“设置密码”] admin 控制台密码, 不配置则不允许访问控制台,大白话:管理员密码不配置你怎么管理?可以多个,你也可以只配置一个!
ADMIN_USER_ROLE 纯文本 admin admin 角色配置, 如果用户角色等于 ADMIN_USER_ROLE 则可以访问 admin 控制台 大白话:如果角色是admin的用户就可以直接看到admin控制台
DEFAULT_DOMAINS JSON [“”] 或者 [“你的域名”] 这里给了一个空数组,也就是说没有登录的用户没有可用的域名,如果你想给没有登录的用户使用域名,你可以加上自己的域名[“各自域名”] 它是一个数组也可以多个
DOMAINS JSON [“你的域名”] 这里是用来配置你的域名的,例如我的域名就是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 纯文本 密钥 这里需要一个密钥,打开Credentials Generator | LibreChat 生成后复制“JWT_SECRET”里的内容
NO_LIMIT_SEND_ROLE 纯文本 admin 可以无限发送邮件的角色,我设置成了admin,也就是说admin角色的用户可以无限发送邮件了!
USER_ROLES JSON [{“domains”:[“你的域名”],“prefix”:“”,“role”:“vip”},{“domains”:[“你的域名”],“prefix”:“”,“role”:“admin”}] 设置两个系统角色,一个为vip一个为admin!
ENABLE_ADDRESS_PASSWORD 纯文本 true 启用邮箱地址密码功能,启用后创建新地址时会自动生成密码,并支持密码登录和修改

ADMIN_PASSWORDS

["your_password","your_password_two"]

DEFAULT_DOMAINS

[""]

["你自己的域名"]

DOMAINS

["你的域名.love"]

USER_ROLES

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

如何配置?看图

image2240×1204 152 KB
image1243×1245 60 KB

一次性可以配置多个哈!

image977×549 13.4 KB
image881×595 12.4 KB

配置KV缓存

image1720×939 53.5 KB
image1309×645 23.3 KB
image1720×939 69.9 KB
image1720×939 62.4 KB
image1282×1243 59.1 KB
image731×1300 27.2 KB

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

image1720×939 55.9 KB
image1720×939 64.8 KB
image1197×821 27.2 KB

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

搭建前端服务,也就是操作界面!

image1720×939 70.9 KB

我们需要生成前端代码,打开官方文档,一个生成器!

直达地址

【注意】这里图片里打错字了,图片里说的是“自定义域”,我打成了“兹定于”

image1624×1193 133 KB
image1720×939 55.3 KB
image1720×939 54.9 KB
image1236×408 14 KB
image1699×828 41.3 KB
image1679×920 65.5 KB
image1132×615 17.8 KB
image1186×668 19 KB
image1597×619 28.9 KB

也许也不需要等十分钟,你可以用无痕浏览器,或者别的浏览器访问一下,看是否可以访问了!

image1168×1121 32 KB

测试是否正常

创建用户

awsl:

admin 后台可以点击五次 logo 进入

image763×486 16.3 KB

image1040×909 32.9 KB
image1448×822 30.5 KB
image1480×395 16.4 KB
image1583×560 36.5 KB

测试接收邮件

image1179×696 20.3 KB
image1781×763 17.5 KB
image1417×715 25.7 KB
image1466×923 38.4 KB
image1357×618 42 KB

调用API创建邮件获取邮件(请根据实际情况去修改代码!这是之前测试用的代码!)

import requests import json from time import sleep import random import string import re # 配置信息 WORKER_DOMAIN = "" # 替换为你的后台域名,比如我的,apimail.linuxdo.love EMAIL_DOMAIN = "" # 你的域名地址 ADMIN_PASSWORD = "" # 你的管理员密码 def generate_random_name(): """生成随机邮箱名称""" letters1 = ''.join(random.choices(string.ascii_lowercase, k=5)) # 5个小写字母 numbers = ''.join(random.choices(string.digits, k=random.randint(1, 3))) # 1-3个数字 letters2 = ''.join(random.choices(string.ascii_lowercase, k=random.randint(1, 3))) # 1-3个小写字母 return letters1 + numbers + letters2 def create_test_email(): """创建测试邮箱""" try: random_name = generate_random_name() res = requests.post( f"https://{WORKER_DOMAIN}/admin/new_address", json={ "enablePrefix": True, "name": random_name, "domain": EMAIL_DOMAIN, }, headers={ 'x-admin-auth': ADMIN_PASSWORD, "Content-Type": "application/json" } ) if res.status_code == 200: data = res.json() print("创建邮箱成功:") print(f"JWT: {data.get('jwt')}") print(f"邮箱地址: {data.get('address')}") return data.get('jwt'), data.get('address') else: print(f"创建邮箱失败: {res.status_code}") return None, None except Exception as e: print(f"创建邮箱出错: {e}") return None, None def check_verification_code(jwt): """查看验证码""" try: limit = 10 offset = 0 res = requests.get( f"https://{WORKER_DOMAIN}/api/mails", params={ "limit": limit, "offset": offset }, headers={ "Authorization": f"Bearer {jwt}", "Content-Type": "application/json" } ) if res.status_code == 200: data = res.json() # print("\n收到的邮件:") # print(json.dumps(data, indent=2)) # 使用正则表达式提取验证码 if data.get('results') and len(data['results']) > 0: raw_content = data['results'][0].get('raw', '') # 获取最新邮件的raw内容 # 使用更简单的正则表达式,直接匹配数字 code_matches = re.findall(r'code is: (\d{6})', raw_content) if code_matches: verification_code = code_matches[0] # 获取第一个匹配的6位数字 print(f"\n提取到的验证码: {verification_code}") return True, verification_code else: # 尝试另一种匹配方式 code_matches = re.findall(r'code is:\s*(\d{6})', raw_content) if code_matches: verification_code = code_matches[0] print(f"\n提取到的验证码: {verification_code}") return True, verification_code print("未找到验证码") return False, None else: print("邮件列表为空") return False, None else: print(f"获取邮件失败: {res.status_code}") return False, None except Exception as e: print(f"获取邮件出错: {e}") return False, None def main(): # 1. 创建测试邮箱 jwt, address = create_test_email() if not jwt or not address: print("无法继续测试") return print("\n创建的邮箱信息:") print(f"JWT: {jwt}") print(f"邮箱地址: {address}") # 2. 等待一会儿,让邮件有时间送达 print("\n等待10秒钟让邮件送达...") sleep(10) # 3. 查看验证码 success, code = check_verification_code(jwt) if success: print(f"成功获取验证码: {code}") else: print("获取验证码失败")

关于发送邮件

由于我一直在弄自己的学习,然后平常也就上L站看看,一直没有空写发邮件的教程,今天看到有佬友写了一篇有关发送邮件的配置,贴在这里哈!感谢佬友的教程!

书接上回——如何让你的CF临时邮箱可以发邮件 开发调优
书接上回: 看的大佬的帖子,就像是窜稀一般的顺滑,一会就整下来了,但是我发现我这个邮箱发不了邮件,于是就去爬楼看看有没有人跟我一样,结果是大佬没写这一点的实现(估计是大佬想考验我们了 ) 首先看看官方怎么描述的: [image] 总而言之,言而总之,就三步: 首先去https://resend.com 注册一个账号 [image]、 点击 API KEYS …

另外一个佬友写的发送邮件教程

建立自己的域名邮箱系统 文档共建
[image] 论坛有很详细的教程了,走了一遍,总结下,说下几个小坑 优点 拥有属于自己的大量邮箱 接收邮件 发送邮件 UI登陆和注册界面 能够开放给其他用户,并限制用户注册的邮箱个数 … 要求 有一个DNS解析了的域名 (绑定了某个服务器的一个域名) 原理 基于cloudflare_temp_email https://temp-mail-docs.awsl.uk/ htt…

另类方式实现自有域名无限收码(只能收不能发,发还是得依靠resend之类第三方)

如果你有自己的域名,你只是为了接收邮件,有个更简单的方式,使用cloudflare的 Email Routing 即可。
如图,选择你托管在cf上的域名,然后点击这个
image546×754 30.7 KB
然后 (有冲突的地方记得删掉)
image810×252 6.89 KB
然后到这地方设置下全转发,把你域名下的所有邮件统一转到你私有的某个邮箱。
image2392×866 155 KB
然后你就拥有无限多的邮箱来收验证码了。
即任何发往这个域名的邮件都会转到你设置的那个私有邮箱中。
举例 “xx@域名 admin@域名”…… 最终都会被cf大善人给你转发到你设置的那个邮箱中。
设置完了记得启用下。
image326×210 3.28 KB

问题收集

关于刷新后404问题

墨:

image2432×1518 187 KB

新版 CF 页面需要标记它是单页面应用,我记得以前是没有这个选项的,估计是新加的配置项。

kuschzzp:

以前nginx部署vue项目 刷新 404,在nginx上加个 tryfile 配置就行,cf部署我还真不知道咋整

结束

啊,从21点写到现在01点03分,终于写完了,希望能帮到佬友,发送邮件我就不写了,需要的可以去看看官方文档,第一次写教程,如果有错误或者欠缺的地方,欢迎佬友们补充!我去睡觉了!我还说我调整作息呢…又熬到1点了
访问地址:https://mail.linuxdo.love/

最后接好运

昨天中了40 5块钱中了40块钱!自己买疯狂星期四! - #6,来自 XiaoHuang
今天中了50
19d7641cdf17bff85e8ac81c41eb128f1920×1440 286 KB

为什么我的Cloudflare里面没有D1数据库

祝佬友们也好运连连!

本教程允许搬运,但请标注出处,谢谢

网友解答:
--【壹】--:

整挺好!!


--【贰】--:

事无巨细,赞了


--【叁】--:

感谢分享有时间试试


--【肆】--:

实在太棒了,给了


--【伍】--:

学了。感谢大佬


--【陆】--:

太强了,感谢佬的精心制作分享


--【柒】--:

好强啊,感谢分享~


--【捌】--:

很细,感谢佬友


--【玖】--:

这个手把手教学写起来很费时间,谢谢分享


--【拾】--:

这也太细了吧

我直接 catch all 转 duck 再转飞书。


--【拾壹】--:

太细心啦


--【拾贰】--:

祝佬友发大财


--【拾叁】--:

写给小白的,不得细点!


--【拾肆】--:

很吊,很详细,收藏了


--【拾伍】--:

刚刚好之前建这个一直失败)
谢谢啦


--【拾陆】--:

我靠!这个教程也太长长长长了!!!!


--【拾柒】--:

太详细了,太适合新手了


--【拾捌】--:

教程很好很细,为了写教程专门买域名,大受震撼!赞赞支持!


--【拾玖】--:

太详细了老友

标签: 邮箱 教程 也能
问题描述:

此版本为2024年12月旧版本教程,请参照2026年新版本

教程翻新版本:

【教程】2026版 小白也能看懂的自建Cloudflare临时邮箱教程(域名邮箱) 文档共建
从 【教程】小白也能看懂的自建Cloudflare临时邮箱教程(域名邮箱) 继续 你可以通过右边的目录快速定位你想查看的模块~ 文档如果没有需要修改的错误和需要新补充的,还请各位佬友不要随意改标题和内容! 总结佬友们补充的教程(2026年3月5日更新) 有很多热心的佬友出了别的版本的教程,例如这位佬友写了用Claude Code + CLI的形式去部署,其实项目是支持CLI的,只是说对…

写在前面

我一开始也没怎么用过Cloudflare,就最早的时候是用它来部署过Openai的接口中转,防止被墙(已经是很早很早之前的事情了,已经失效了),然后呢那天我打开cloudflare临时邮箱项目的官方教程文档,给我搞的一脸懵的,不过好在最后是成功搭建好了!写这个教程,也是为了帮助那些想搭,但是弄不明白的佬友,希望可以帮到你!

注意

此为临时邮箱,如果你需要注册自己觉得比较重要的平台且账号数据需要保留的情况下,请不要使用临时邮箱注册!!! 除非你打算一直使用你的域名邮箱!且自己有能力一直维护自己的邮箱服务!

我为什么想搭临时邮箱?

起初是一天晚上,半夜没睡着,然后不知道抽什么风,就想去域名注册看看,看能不能弄个好看点的域名,然后我试啊试,最终注册了一个goai.love,我想着不浪费的情况下,用它来做点什么,于是首先想到的就是搭建临时邮箱供给自己的朋友们一起使用,对打算搭个私有的临时邮箱

【教程】小白也能看懂的自建Cloudflare临时邮箱教程(域名邮箱)

临时邮箱有什么好处?

我们知道,很多平台注册都会使用到邮箱,我们见过的常用邮箱有 gmailqq163等,一般会给一个固定的前缀,例如xiaohuang@qq.com,这时,你会发现注册cursoropenaiclaude你只能用一个邮箱来注册,无法多次注册!说人话就是方便你可以无限注册薅羊毛(当然我也知道gmail可以有特殊的办法使它前缀不一致发送给同一个邮箱,我没试过就不说啦)

什么是临时邮箱?

标题上已经写了,它其实就是域名邮箱,只是我们用到的这个项目取名叫做临时邮箱,它是通过你自己购买的域名来在Cloudflare上搭建一个邮箱服务来实现的,所以你也可以叫它自建域名邮箱

【教程】小白也能看懂的自建Cloudflare临时邮箱教程(域名邮箱)

准备

  • 至少一个域名
  • Cloudflare账号,你可以注册一个,官网:https://www.cloudflare.com/
  • cloudflare_temp_email项目代码(记得给作者点个star):GitHub - dreamhunter2333/cloudflare_temp_email: CloudFlare free temp domain email 免费收发 临时域名邮箱 支持附件 IMAP SMTP TelegramBot · GitHub
  • 临时邮箱搭建官方文档:https://temp-mail-docs.awsl.uk/ (佬友也可以去看官方文档搭建)

关于域名

  • 你可以寻找便宜的服务商去注册,我一般会在阿里云、腾讯云买域名,比如我为了写教程就买了一个linuxdo.love
  • 如果你想便宜,那就用不常见的后缀且域名前缀给长一点,不要学我,我这个域名续费180一年,18首年!
  • 在买域名的时候,你可以注意一下之后续费是多少钱一年,如果看不到,你可以尝试把1年加到2年一般就可以看到之后续费的价格了

项目原作者

awsl:

赞,文档链接到这篇教程了,快速开始 | 临时邮箱文档

第一步,将域名交给Cloudflare托管

打开Clouflare,配置转移域

image2560×1313 173 KB
image1533×961 51 KB
image1501×1075 64.8 KB
image2468×1274 232 KB
image1613×1257 172 KB

打开域名服务商,这里以我的腾讯为例,其它平台都是同理的

image1695×978 58.9 KB
image356×411 8.38 KB
image2209×700 48.2 KB
image1125×972 32.1 KB
image1045×704 36.1 KB
image516×148 5.99 KB

回到Cloudflare继续,一般改过之后需要等一阵子才会生效(大概10分钟)

image1351×1138 68.5 KB
image949×881 42.1 KB
image1662×890 54.1 KB
image1191×908 29.8 KB

image1261×592 81.6 KB
image1128×833 34.6 KB
image1135×677 31 KB
image1389×705 33.2 KB
image1267×832 42.5 KB
image1343×558 29.4 KB

如果你不需要搭临时邮箱服务,只需要自己的域名邮箱

自此你可以设置成发送到电子邮件,也就是说这个xxx所有的邮件@linuxdo.love都会转发到你指定的邮箱里去
例如:

  • xiaohuang@linuxdo.love → xiaohuang@qq.com
  • ilovelinuxdo@linuxdo.love → xiaohuang@qq.com
    image1212×647 19.3 KB

如果你需要继续搭建临时邮箱,请往下看!

搭建临时邮箱服务

创建D1数据库

image1774×1029 58.6 KB
image1178×642 20.6 KB

打开项目地址,找到db/schema.sql

直达请点我

image2016×1303 166 KB
image1679×1090 64.5 KB
image1370×343 13.9 KB
image1655×958 43.8 KB

部署邮箱服务后端

image1704×945 76.4 KB
image1431×934 29.4 KB
image1570×1103 64.1 KB

nodejs_compat可以在这里复制!

image1740×1311 113 KB
image2241×1139 96.1 KB

代码直达地址,点我!

下载代码后,打开代码直接全部复制!

image2549×1186 179 KB
image2470×1192 273 KB

然后我们返回,继续配置D1数据库!

image2549×1253 211 KB
image2203×1300 136 KB
image1925×1192 116 KB
image1837×1218 116 KB
image1203×617 32 KB

接下来,我们设置环境变量

你可以直接按我给的配置来配,如果你需要额外的配置可以查阅官方文档

文档直达

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

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

类型 说明
ADMIN_PASSWORDS JSON [“”,“设置密码”] admin 控制台密码, 不配置则不允许访问控制台,大白话:管理员密码不配置你怎么管理?可以多个,你也可以只配置一个!
ADMIN_USER_ROLE 纯文本 admin admin 角色配置, 如果用户角色等于 ADMIN_USER_ROLE 则可以访问 admin 控制台 大白话:如果角色是admin的用户就可以直接看到admin控制台
DEFAULT_DOMAINS JSON [“”] 或者 [“你的域名”] 这里给了一个空数组,也就是说没有登录的用户没有可用的域名,如果你想给没有登录的用户使用域名,你可以加上自己的域名[“各自域名”] 它是一个数组也可以多个
DOMAINS JSON [“你的域名”] 这里是用来配置你的域名的,例如我的域名就是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 纯文本 密钥 这里需要一个密钥,打开Credentials Generator | LibreChat 生成后复制“JWT_SECRET”里的内容
NO_LIMIT_SEND_ROLE 纯文本 admin 可以无限发送邮件的角色,我设置成了admin,也就是说admin角色的用户可以无限发送邮件了!
USER_ROLES JSON [{“domains”:[“你的域名”],“prefix”:“”,“role”:“vip”},{“domains”:[“你的域名”],“prefix”:“”,“role”:“admin”}] 设置两个系统角色,一个为vip一个为admin!
ENABLE_ADDRESS_PASSWORD 纯文本 true 启用邮箱地址密码功能,启用后创建新地址时会自动生成密码,并支持密码登录和修改

ADMIN_PASSWORDS

["your_password","your_password_two"]

DEFAULT_DOMAINS

[""]

["你自己的域名"]

DOMAINS

["你的域名.love"]

USER_ROLES

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

如何配置?看图

image2240×1204 152 KB
image1243×1245 60 KB

一次性可以配置多个哈!

image977×549 13.4 KB
image881×595 12.4 KB

配置KV缓存

image1720×939 53.5 KB
image1309×645 23.3 KB
image1720×939 69.9 KB
image1720×939 62.4 KB
image1282×1243 59.1 KB
image731×1300 27.2 KB

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

image1720×939 55.9 KB
image1720×939 64.8 KB
image1197×821 27.2 KB

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

搭建前端服务,也就是操作界面!

image1720×939 70.9 KB

我们需要生成前端代码,打开官方文档,一个生成器!

直达地址

【注意】这里图片里打错字了,图片里说的是“自定义域”,我打成了“兹定于”

image1624×1193 133 KB
image1720×939 55.3 KB
image1720×939 54.9 KB
image1236×408 14 KB
image1699×828 41.3 KB
image1679×920 65.5 KB
image1132×615 17.8 KB
image1186×668 19 KB
image1597×619 28.9 KB

也许也不需要等十分钟,你可以用无痕浏览器,或者别的浏览器访问一下,看是否可以访问了!

image1168×1121 32 KB

测试是否正常

创建用户

awsl:

admin 后台可以点击五次 logo 进入

image763×486 16.3 KB

image1040×909 32.9 KB
image1448×822 30.5 KB
image1480×395 16.4 KB
image1583×560 36.5 KB

测试接收邮件

image1179×696 20.3 KB
image1781×763 17.5 KB
image1417×715 25.7 KB
image1466×923 38.4 KB
image1357×618 42 KB

调用API创建邮件获取邮件(请根据实际情况去修改代码!这是之前测试用的代码!)

import requests import json from time import sleep import random import string import re # 配置信息 WORKER_DOMAIN = "" # 替换为你的后台域名,比如我的,apimail.linuxdo.love EMAIL_DOMAIN = "" # 你的域名地址 ADMIN_PASSWORD = "" # 你的管理员密码 def generate_random_name(): """生成随机邮箱名称""" letters1 = ''.join(random.choices(string.ascii_lowercase, k=5)) # 5个小写字母 numbers = ''.join(random.choices(string.digits, k=random.randint(1, 3))) # 1-3个数字 letters2 = ''.join(random.choices(string.ascii_lowercase, k=random.randint(1, 3))) # 1-3个小写字母 return letters1 + numbers + letters2 def create_test_email(): """创建测试邮箱""" try: random_name = generate_random_name() res = requests.post( f"https://{WORKER_DOMAIN}/admin/new_address", json={ "enablePrefix": True, "name": random_name, "domain": EMAIL_DOMAIN, }, headers={ 'x-admin-auth': ADMIN_PASSWORD, "Content-Type": "application/json" } ) if res.status_code == 200: data = res.json() print("创建邮箱成功:") print(f"JWT: {data.get('jwt')}") print(f"邮箱地址: {data.get('address')}") return data.get('jwt'), data.get('address') else: print(f"创建邮箱失败: {res.status_code}") return None, None except Exception as e: print(f"创建邮箱出错: {e}") return None, None def check_verification_code(jwt): """查看验证码""" try: limit = 10 offset = 0 res = requests.get( f"https://{WORKER_DOMAIN}/api/mails", params={ "limit": limit, "offset": offset }, headers={ "Authorization": f"Bearer {jwt}", "Content-Type": "application/json" } ) if res.status_code == 200: data = res.json() # print("\n收到的邮件:") # print(json.dumps(data, indent=2)) # 使用正则表达式提取验证码 if data.get('results') and len(data['results']) > 0: raw_content = data['results'][0].get('raw', '') # 获取最新邮件的raw内容 # 使用更简单的正则表达式,直接匹配数字 code_matches = re.findall(r'code is: (\d{6})', raw_content) if code_matches: verification_code = code_matches[0] # 获取第一个匹配的6位数字 print(f"\n提取到的验证码: {verification_code}") return True, verification_code else: # 尝试另一种匹配方式 code_matches = re.findall(r'code is:\s*(\d{6})', raw_content) if code_matches: verification_code = code_matches[0] print(f"\n提取到的验证码: {verification_code}") return True, verification_code print("未找到验证码") return False, None else: print("邮件列表为空") return False, None else: print(f"获取邮件失败: {res.status_code}") return False, None except Exception as e: print(f"获取邮件出错: {e}") return False, None def main(): # 1. 创建测试邮箱 jwt, address = create_test_email() if not jwt or not address: print("无法继续测试") return print("\n创建的邮箱信息:") print(f"JWT: {jwt}") print(f"邮箱地址: {address}") # 2. 等待一会儿,让邮件有时间送达 print("\n等待10秒钟让邮件送达...") sleep(10) # 3. 查看验证码 success, code = check_verification_code(jwt) if success: print(f"成功获取验证码: {code}") else: print("获取验证码失败")

关于发送邮件

由于我一直在弄自己的学习,然后平常也就上L站看看,一直没有空写发邮件的教程,今天看到有佬友写了一篇有关发送邮件的配置,贴在这里哈!感谢佬友的教程!

书接上回——如何让你的CF临时邮箱可以发邮件 开发调优
书接上回: 看的大佬的帖子,就像是窜稀一般的顺滑,一会就整下来了,但是我发现我这个邮箱发不了邮件,于是就去爬楼看看有没有人跟我一样,结果是大佬没写这一点的实现(估计是大佬想考验我们了 ) 首先看看官方怎么描述的: [image] 总而言之,言而总之,就三步: 首先去https://resend.com 注册一个账号 [image]、 点击 API KEYS …

另外一个佬友写的发送邮件教程

建立自己的域名邮箱系统 文档共建
[image] 论坛有很详细的教程了,走了一遍,总结下,说下几个小坑 优点 拥有属于自己的大量邮箱 接收邮件 发送邮件 UI登陆和注册界面 能够开放给其他用户,并限制用户注册的邮箱个数 … 要求 有一个DNS解析了的域名 (绑定了某个服务器的一个域名) 原理 基于cloudflare_temp_email https://temp-mail-docs.awsl.uk/ htt…

另类方式实现自有域名无限收码(只能收不能发,发还是得依靠resend之类第三方)

如果你有自己的域名,你只是为了接收邮件,有个更简单的方式,使用cloudflare的 Email Routing 即可。
如图,选择你托管在cf上的域名,然后点击这个
image546×754 30.7 KB
然后 (有冲突的地方记得删掉)
image810×252 6.89 KB
然后到这地方设置下全转发,把你域名下的所有邮件统一转到你私有的某个邮箱。
image2392×866 155 KB
然后你就拥有无限多的邮箱来收验证码了。
即任何发往这个域名的邮件都会转到你设置的那个私有邮箱中。
举例 “xx@域名 admin@域名”…… 最终都会被cf大善人给你转发到你设置的那个邮箱中。
设置完了记得启用下。
image326×210 3.28 KB

问题收集

关于刷新后404问题

墨:

image2432×1518 187 KB

新版 CF 页面需要标记它是单页面应用,我记得以前是没有这个选项的,估计是新加的配置项。

kuschzzp:

以前nginx部署vue项目 刷新 404,在nginx上加个 tryfile 配置就行,cf部署我还真不知道咋整

结束

啊,从21点写到现在01点03分,终于写完了,希望能帮到佬友,发送邮件我就不写了,需要的可以去看看官方文档,第一次写教程,如果有错误或者欠缺的地方,欢迎佬友们补充!我去睡觉了!我还说我调整作息呢…又熬到1点了
访问地址:https://mail.linuxdo.love/

最后接好运

昨天中了40 5块钱中了40块钱!自己买疯狂星期四! - #6,来自 XiaoHuang
今天中了50
19d7641cdf17bff85e8ac81c41eb128f1920×1440 286 KB

为什么我的Cloudflare里面没有D1数据库

祝佬友们也好运连连!

本教程允许搬运,但请标注出处,谢谢

网友解答:
--【壹】--:

整挺好!!


--【贰】--:

事无巨细,赞了


--【叁】--:

感谢分享有时间试试


--【肆】--:

实在太棒了,给了


--【伍】--:

学了。感谢大佬


--【陆】--:

太强了,感谢佬的精心制作分享


--【柒】--:

好强啊,感谢分享~


--【捌】--:

很细,感谢佬友


--【玖】--:

这个手把手教学写起来很费时间,谢谢分享


--【拾】--:

这也太细了吧

我直接 catch all 转 duck 再转飞书。


--【拾壹】--:

太细心啦


--【拾贰】--:

祝佬友发大财


--【拾叁】--:

写给小白的,不得细点!


--【拾肆】--:

很吊,很详细,收藏了


--【拾伍】--:

刚刚好之前建这个一直失败)
谢谢啦


--【拾陆】--:

我靠!这个教程也太长长长长了!!!!


--【拾柒】--:

太详细了,太适合新手了


--【拾捌】--:

教程很好很细,为了写教程专门买域名,大受震撼!赞赞支持!


--【拾玖】--:

太详细了老友

标签: 邮箱 教程 也能