此为临时邮箱,如果你需要注册自己觉得比较重要的平台且账号数据需要保留的情况下,请不要使用临时邮箱注册!!! 除非你打算一直使用你的域名邮箱!且自己有能力一直维护自己的邮箱服务!
起初是一天晚上,半夜没睡着,然后不知道抽什么风,就想去域名注册看看,看能不能弄个好看点的域名,然后我试啊试,最终注册了一个goai.love,我想着不浪费的情况下,用它来做点什么,于是首先想到的就是搭建临时邮箱供给自己的朋友们一起使用,对打算搭个私有的临时邮箱
我们知道,很多平台注册都会使用到邮箱,我们见过的常用邮箱有 gmail、qq、163等,一般会给一个固定的前缀,例如xiaohuang@qq.com,这时,你会发现注册cursor,openai,claude你只能用一个邮箱来注册,无法多次注册!说人话就是方便你可以无限注册薅羊毛(当然我也知道gmail可以有特殊的办法使它前缀不一致发送给同一个邮箱,我没试过就不说啦)
标题上已经写了,它其实就是域名邮箱,只是我们用到的这个项目取名叫做临时邮箱,它是通过你自己购买的域名来在Cloudflare上搭建一个邮箱服务来实现的,所以你也可以叫它自建域名邮箱
linuxdo.love
自此你可以设置成发送到电子邮件,也就是说这个xxx所有的邮件@linuxdo.love都会转发到你指定的邮箱里去
例如:
如果你需要继续搭建临时邮箱,请往下看!
db/schema.sql
nodejs_compat可以在这里复制!
下载代码后,打开代码直接全部复制!
你可以直接按我给的配置来配,如果你需要额外的配置可以查阅官方文档
注意:请不要从表格里直接复制配置,你可以下拉到表格下方去复制,表格内的引号会自动将英文的转成中文的,所以请去下面代码块内复制! ![]()
请仔细查看参数说明,不要直接复制就不管了
| 值 | 类型 | 值 | 说明 |
|---|---|---|---|
| ADMIN_PASSWORDS | JSON | [“your_password”,“your_password_two”] | admin 控制台密码, 不配置则不允许访问控制台,大白话:管理员密码不配置你怎么管理?可以多个,你也可以只配置一个! |
| ADMIN_USER_ROLE | 纯文本 | admin | admin 角色配置, 如果用户角色等于 ADMIN_USER_ROLE 则可以访问 admin 控制台 大白话:如果角色是admin的用户就可以直接看到admin控制台 |
| DEFAULT_DOMAINS | JSON | [“”] 或者 [“你自己的域名”] | 这里给了一个空数组,也就是说没有登录的用户没有可用的域名,如果你想给没有登录的用户使用域名,你可以加上自己的域名[“各自域名”] 它是一个数组也可以多个 |
| DOMAINS | JSON | [“你的域名.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_ROLES | JSON | [{“domains”:[“你的域名.love”],“prefix”:“”,“role”:“vip”},{“domains”:[“你的域名.love”],“prefix”:“”,“role”:“admin”}] 别从这里复制从表格下的代码块复制这个不然报错 | 设置两个系统角色,一个为vip一个为admin! |
| ENABLE_ADDRESS_PASSWORD | 纯文本 | true | 启用邮箱地址密码功能,启用后创建新地址时会自动生成密码,并支持密码登录和修改 |
["your_password","your_password_two"]
[""]
["你自己的域名"]
["你的域名.love"]
[{"domains":["你的域名.love"],"prefix":"","role":"vip"},{"domains":["你的域名.love"],"prefix":"","role":"admin"}]
一次性可以配置多个哈!
自此!恭喜你!临时邮箱后端服务搭建完成!
我们需要生成前端代码,打开官方文档,一个生成器!
也许也不需要等十分钟,你可以用无痕浏览器,或者别的浏览器访问一下,看是否可以访问了!
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站看看,一直没有空写发邮件的教程,今天看到有佬友写了一篇有关发送邮件的配置,贴在这里哈!感谢佬友的教程!
如果你有自己的域名,你只是为了接收邮件,有个更简单的方式,使用cloudflare的 Email Routing 即可。
如图,选择你托管在cf上的域名,然后点击这个
然后 (有冲突的地方记得删掉)
然后到这地方设置下全转发,把你域名下的所有邮件统一转到你私有的某个邮箱。
然后你就拥有无限多的邮箱来收验证码了。
即任何发往这个域名的邮件都会转到你设置的那个私有邮箱中。
举例 “xx@域名 admin@域名”…… 最终都会被cf大善人给你转发到你设置的那个邮箱中。
设置完了记得启用下。
啊,从21点写到现在01点03分,终于写完了,希望能帮到佬友,发送邮件我就不写了,需要的可以去看看官方文档,第一次写教程,如果有错误或者欠缺的地方,欢迎佬友们补充!我去睡觉了!我还说我调整作息呢…又熬到1点了
访问地址:https://mail.linuxdo.love/