站点图标 高效码农

3步搭建免费临时邮箱服务!Cloudflare Workers+D1数据库终极隐私保护方案

基于Cloudflare Workers的临时邮箱服务:部署指南与功能详解

你是否曾因注册网站需要提供邮箱而担心垃圾邮件骚扰?是否因频繁验证而厌倦邮箱堆积?本文将带你探索如何利用Cloudflare Workers和D1数据库搭建安全可靠的临时邮箱服务。

什么是临时邮箱服务?

临时邮箱服务是一种保护个人隐私的实用工具,它提供一次性的、可丢弃的邮箱地址用于注册网站或接收验证邮件。当你在不可信的网站上注册时,使用临时邮箱可以避免个人主邮箱被垃圾邮件轰炸,同时保持收件箱整洁。

项目展示

体验地址:https://mail.dinging.top/
体验密码:admin

现代化界面效果


简约的毛玻璃设计配合动态渐变背景,视觉效果出众

安全登录保护


密码保护确保只有授权用户才能访问邮件内容

邮件内容查看


支持HTML渲染,完整展示邮件格式和内容

验证码便捷复制


智能识别验证码并提供一键复制功能

核心功能特性

🎨 现代化用户界面

  • 毛玻璃效果:采用前沿的Glassmorphism设计风格
  • 响应式布局:在手机、平板和桌面设备上均完美显示
  • 平滑动画:操作时有流畅的过渡效果,提升用户体验
  • 浅色主题:简约美观的界面降低视觉疲劳

📧 邮箱管理功能

  • 智能生成:随机创建临时邮箱地址,支持自定义长度
  • 历史记录:自动保存使用过的邮箱,方便重复调用
  • 批量管理:支持单个删除或清空整个邮箱
  • 快速切换:在不同邮箱地址间无缝切换

💌 邮件处理能力

  • 实时接收:自动获取并显示新邮件
  • 自动刷新:每8秒自动检查邮箱是否有新邮件
  • 智能识别:自动提取并高亮显示验证码
  • 内容渲染:完整展示HTML和纯文本邮件内容
  • 一键操作:快速复制验证码或整个邮件内容

⚙️ 技术实现优势

  • 全球加速:基于Cloudflare全球网络,访问速度快
  • 可靠存储:使用D1数据库保证数据持久化
  • 安全认证:JWT令牌保护API接口安全
  • 完整API:提供RESTful接口便于扩展集成

详细部署指南

第一步:创建D1数据库

# 安装Wrangler命令行工具
npm install -g wrangler

# 登录Cloudflare账号
wrangler login

# 创建D1数据库实例
wrangler d1 create temp-mail-db

第二步:配置项目文件

创建wrangler.toml文件并填入以下内容:

main = "src/index.js"

[[d1_databases]]
binding = "TEMP_MAIL_DB"
database_name = "temp-mail-db"
database_id = "你的数据库ID"

[vars]
MAIL_DOMAIN = "yourdomain.com, seconddomain.cn" # 多个域名用逗号分隔

第三步:部署到Cloudflare

# 设置安全密钥
wrangler secret put ADMIN_PASSWORD
wrangler secret put JWT_TOKEN

# 本地测试运行
wrangler dev

# 部署到生产环境
wrangler deploy

第四步:初始化数据库结构

wrangler d1 execute TEMP_MAIL_DB --file=./d1-init-basic.sql

第五步:配置邮件路由

  1. 进入Cloudflare控制台的”Email Routing”设置
  2. 添加Catch-all规则
  3. 目标设置为Worker:temp-mail-worker
  4. 确保域名MX记录正确指向Cloudflare邮件服务器

可选步骤:自定义域名

在Worker设置中添加自定义域名,或直接使用Cloudflare提供的workers.dev子域名。

环境变量配置指南

变量名 说明 必需
TEMP_MAIL_DB D1数据库绑定
MAIL_DOMAIN 邮箱域名(多个用逗号分隔)
ADMIN_PASSWORD 后台访问密码
JWT_TOKEN JWT签名密钥
FORWARD_RULES 邮件转发规则

邮件转发规则示例:

# 简单格式:
FORWARD_RULES="vip=admin@example.com,news=contact@example.com"

# JSON格式:
FORWARD_RULES='[{"prefix":"support","email":"help@example.com"},{"prefix":"*","email":"all@example.com"}]'

完整API接口说明

邮箱管理接口

  • GET /api/generate – 生成新邮箱
  • GET /api/mailboxes – 获取历史邮箱列表
  • DELETE /api/mailbox/{address} – 删除指定邮箱

邮件操作接口

  • GET /api/emails?mailbox=address@domain – 获取邮件列表
  • GET /api/email/{id} – 获取邮件详情
  • DELETE /api/email/{id} – 删除单个邮件
  • DELETE /api/emails?mailbox=address@domain – 清空邮箱

认证接口

  • POST /api/session – 用户登录
  • POST /api/logout – 用户退出

系统接口

  • GET /api/domains – 获取可用域名列表

使用注意事项

  1. 静态资源缓存:更新HTML/CSS文件后,需在Cloudflare控制台清除缓存
  2. 图标路径:建议使用相对路径引用favicon等资源
  3. 邮件路由:确保正确配置MX记录和Catch-all规则
  4. 数据库管理:定期清理过期邮件节省存储空间
  5. 安全设置:生产环境务必修改默认密码和JWT密钥

自定义与扩展

你可以轻松定制以下功能:

  • 修改public/目录下的文件调整界面样式
  • 调整邮箱生成规则和地址长度
  • 扩展邮件保存时间和存储策略
  • 添加新的API端点扩展功能

常见问题解答(FAQ)

为什么收不到邮件?

  1. 检查Cloudflare邮件路由配置是否正确
  2. 确认域名的MX记录已正确设置
  3. 验证MAIL_DOMAIN环境变量是否包含正确域名
  4. 确保Worker部署成功且运行正常

数据库连接失败怎么办?

# 检查数据库绑定
wrangler d1 list

# 测试数据库查询
wrangler d1 execute TEMP_MAIL_DB --command "SELECT * FROM mailboxes LIMIT 5"

无法登录后台?

  1. 确认ADMIN_PASSWORD环境变量已正确设置
  2. 检查JWT_TOKEN是否配置且有效
  3. 清除浏览器缓存和Cookie后重试
  4. 查看Worker日志排查认证错误

界面显示异常?

  1. 检查静态资源路径是否正确
  2. 查看浏览器控制台是否有JavaScript错误
  3. 确认CSS文件是否正常加载
  4. 尝试强制刷新页面(Ctrl/Cmd + F5)

自动刷新不工作?

  1. 确认已选中有效邮箱地址
  2. 检查浏览器是否支持Page Visibility API
  3. 查看网络连接是否稳定
  4. 排除浏览器插件干扰

调试技巧

# 实时查看日志
wrangler tail

# 本地调试
wrangler dev

# 数据库查询
wrangler d1 execute TEMP_MAIL_DB --command "SELECT COUNT(*) FROM emails"

开源许可

本项目采用Apache-2.0许可证开源,允许自由使用和修改代码,但需保留原始许可声明。

结语

通过本文,你已经掌握了使用Cloudflare Workers和D1数据库搭建临时邮箱服务的完整流程。这个方案不仅成本低廉(Cloudflare Workers有免费额度),而且具备全球加速能力,响应速度快。无论你是个人用户需要临时邮箱保护隐私,还是开发者想了解现代Serverless架构,这个项目都提供了实用参考。

部署你自己的临时邮箱服务,告别垃圾邮件困扰,享受干净整洁的收件箱体验!

退出移动版