dreamhunter2333 / cloudflare_temp_email

CloudFlare free temp domain email 免费收发 临时域名邮箱 支持附件 IMAP SMTP

Home Page:https://mail.awsl.uk

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用 cloudflare 免费服务,搭建临时邮箱

https://mail.awsl.uk 或者 https://temp-email.dreamhunter2333.xyz

Backend

Frontend

Star History Chart

功能/TODO

  • Cloudflare D1 作为数据库
  • 使用 Cloudflare Pages 部署前端
  • 使用 Cloudflare Workers 部署后端
  • email 转发使用 Cloudflare Email Routing
  • 使用 password 重新登录之前的邮箱
  • 获取自定义名字的邮箱
  • 支持多语言
  • 增加访问授权,可作为私人站点
  • 增加自动回复功能
  • 增加查看附件功能
  • 使用 rust wasm 解析邮件
  • 支持发送邮件

什么是临时邮箱

临时邮箱,也被称为一次性邮箱或临时邮件地址,是一种用于临时接收邮件的虚拟邮箱。与常规邮箱不同,临时邮箱旨在提供一种匿名且临时的邮件接收解决方案。

临时邮箱往往由网站或在线服务提供商提供,用户可以在需要注册或接收验证邮件时使用临时邮箱地址,而无需暴露自己的真实邮箱地址。这样做的好处是可以保护个人隐私


Cloudflare 服务

  • D1Cloudflare 的原生无服务器数据库。
  • PagesCloudflare 的静态网站托管服务, 速度超快,始终保持最新状态。
  • WorkersCloudflareserverless 应用服务,可以在全球 300 个数据中心运行代码, 而无需配置或维护基础架构。
  • Cloudflare Email Routing 可以处理域名的所有电子邮件流量,而无需管理电子邮件服务器。

wrangler 的安装

安装 wrangler

npm install wrangler -g

克隆项目

git clone https://github.com/dreamhunter2333/cloudflare_temp_email.git

D1 数据库

第一次执行登录 wrangler 命令时,会提示登录, 按提示操作即可

# 创建 D1 并执行 schema.sql
wrangler d1 create dev
wrangler d1 execute dev --file=db/schema.sql
# schema 更新,如果你在此日期之前初始化过数据库,可以执行此命令更新
# wrangler d1 execute dev --file=db/2024-01-13-patch.sql
# wrangler d1 execute dev --file=db/2024-04-03-patch.sql

创建完成后,我们在 cloudflare 的控制台可以看到 D1 数据库

D1


Cloudflare workers 后端

初始化项目

cd worker
pnpm install
cp wrangler.toml.template wrangler.toml

修改 wrangler.toml 文件

name = "cloudflare_temp_email"
main = "src/worker.js"
compatibility_date = "2023-08-14"
node_compat = true

[vars]
PREFIX = "tmp" # 要处理的邮箱名称前缀
# 如果你想要你的网站私有,取消下面的注释,并修改密码
# PASSWORDS = ["123", "456"]
# admin 控制台密码, 不配置则不允许访问控制台
# ADMIN_PASSWORDS = ["123", "456"]
DOMAINS = ["xxx.xxx1" , "xxx.xxx2"] # 你的域名
JWT_SECRET = "xxx" # 用于生成 jwt 的密钥
BLACK_LIST = "" # 黑名单,用于过滤发件人,逗号分隔

[[d1_databases]]
binding = "DB"
database_name = "xxx" # D1 数据库名称
database_id = "xxx" # D1 数据库 ID

Cloudflare Workers 后端

部署

第一次部署会提示创建项目, production 分支请填写 production

pnpm run deploy

部署成功之后再路由中可以看到 workerurl,控制台也会输出 workerurl

worker


Cloudflare Email Routing

在将电子邮件地址绑定到您的 Worker 之前,您需要启用电子邮件路由并拥有至少一个经过验证的电子邮件地址。

配置对应域名的 电子邮件 DNS 记录

配置 Cloudflare Email Routing catch-all 发送到 worker

email


Cloudflare Pages 前端

第一次部署会提示创建项目, production 分支请填写 production

cd frontend
pnpm install
cp .env.example .env.local

修改 .env.local 文件, 将 VITE_API_BASE 修改为 workerurl, 不要在末尾加 /

例如: VITE_API_BASE=https://xxx.xxx.workers.dev

pnpm build --emptyOutDir
# 根据提示创建 pages
pnpm run deploy

pages

配置发送邮件

找到域名 DNS 记录的 TXTSPF 记录, 增加 include:relay.mailchannels.net

v=spf1 include:_spf.mx.cloudflare.net include:relay.mailchannels.net ~all

新建 _mailchannels 记录, 类型为 TXT, 内容为 v=mc1 cfid=你的worker域名

  • 此处 worker 域名为后端 api 的域名,比如我部署在 https://temp-email-api.awsl.uk/,则填写 v=mc1 cfid=awsl.uk
  • 如果你的域名是 https://temp-email-api.xxx.workers.dev,则填写 v=mc1 cfid=xxx.workers.dev

参考资料

About

CloudFlare free temp domain email 免费收发 临时域名邮箱 支持附件 IMAP SMTP

https://mail.awsl.uk

License:MIT License


Languages

Language:Vue 54.5%Language:JavaScript 24.8%Language:TypeScript 13.5%Language:Python 5.4%Language:Rust 1.5%Language:HTML 0.3%