基于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
第五步:配置邮件路由
-
进入Cloudflare控制台的”Email Routing”设置 -
添加Catch-all规则 -
目标设置为Worker: temp-mail-worker
-
确保域名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
– 获取可用域名列表
使用注意事项
-
静态资源缓存:更新HTML/CSS文件后,需在Cloudflare控制台清除缓存 -
图标路径:建议使用相对路径引用favicon等资源 -
邮件路由:确保正确配置MX记录和Catch-all规则 -
数据库管理:定期清理过期邮件节省存储空间 -
安全设置:生产环境务必修改默认密码和JWT密钥
自定义与扩展
你可以轻松定制以下功能:
-
修改 public/
目录下的文件调整界面样式 -
调整邮箱生成规则和地址长度 -
扩展邮件保存时间和存储策略 -
添加新的API端点扩展功能
常见问题解答(FAQ)
为什么收不到邮件?
-
检查Cloudflare邮件路由配置是否正确 -
确认域名的MX记录已正确设置 -
验证MAIL_DOMAIN环境变量是否包含正确域名 -
确保Worker部署成功且运行正常
数据库连接失败怎么办?
# 检查数据库绑定
wrangler d1 list
# 测试数据库查询
wrangler d1 execute TEMP_MAIL_DB --command "SELECT * FROM mailboxes LIMIT 5"
无法登录后台?
-
确认ADMIN_PASSWORD环境变量已正确设置 -
检查JWT_TOKEN是否配置且有效 -
清除浏览器缓存和Cookie后重试 -
查看Worker日志排查认证错误
界面显示异常?
-
检查静态资源路径是否正确 -
查看浏览器控制台是否有JavaScript错误 -
确认CSS文件是否正常加载 -
尝试强制刷新页面(Ctrl/Cmd + F5)
自动刷新不工作?
-
确认已选中有效邮箱地址 -
检查浏览器是否支持Page Visibility API -
查看网络连接是否稳定 -
排除浏览器插件干扰
调试技巧
# 实时查看日志
wrangler tail
# 本地调试
wrangler dev
# 数据库查询
wrangler d1 execute TEMP_MAIL_DB --command "SELECT COUNT(*) FROM emails"
开源许可
本项目采用Apache-2.0许可证开源,允许自由使用和修改代码,但需保留原始许可声明。
结语
通过本文,你已经掌握了使用Cloudflare Workers和D1数据库搭建临时邮箱服务的完整流程。这个方案不仅成本低廉(Cloudflare Workers有免费额度),而且具备全球加速能力,响应速度快。无论你是个人用户需要临时邮箱保护隐私,还是开发者想了解现代Serverless架构,这个项目都提供了实用参考。
部署你自己的临时邮箱服务,告别垃圾邮件困扰,享受干净整洁的收件箱体验!