薅 Cloudflare 羊毛:构建私密邮件验证码提取面板
在注册各种临时服务或测试账号时,我们总需要大量的临时邮箱。虽然网上有很多现成的临时邮箱服务,但隐私性和稳定性始终是隐患。最近我利用 Cloudflare Email Workers 撸了一个属于自己的”验证码在线提取面板”,不仅支持自动提取 6 位验证码,还能一键生成随机前缀并实现点击复制。
这里记录一下踩坑历程和完整的搭建逻辑。
1. 核心思路与演进
阶段一:初探邮件路由
Cloudflare 的 Email Routing 本身支持转发,但如果想对邮件内容进行”编程处理”,就需要 Email Worker。
最初思路: 只要邮件一进来,我就用正则表达式匹配 6 位数字,然后存进数据库。
阶段二:解决”抓不准”的问题
坑点: 邮件的原始报文(Raw Message)里不仅有正文,还有极其复杂的 Header。比如 X-QQ-mid、时间戳等,里面全是 6 位以上的数字。
对策: 1. 强制分割:通过 \r\n\r\n 定位,直接跳过邮件头,只在正文部分搜索。
2. 编解码处理:很多邮件为了兼容性使用了 Base64 或 Quoted-Printable 编码。直接搜搜不到,必须先检测 Content-Transfer-Encoding,还原成明文后再提取。
阶段三:管理与安全
验证码这种东西不能裸奔,所以我加入了:
- KV 存储:利用 Cloudflare KV 存储提取到的 JSON 数据,并设置
expirationTtl(24小时后自动销毁),主打一个阅后即焚。 - 简单鉴权:利用环境变量设置访问密码,配合
HttpOnly的 Cookie 实现登录态。
2. 功能特性
- 双重保障:提取验证码的同时,原始邮件依然可以转发到你的主力邮箱备份。
- 多收件地址支持:页面一级标题显示收件地址(To),方便区分你是用哪个别名注册的服务。
- 高效交互:点击验证码、点击收件地址、点击随机前缀均可一键复制。
- 极简管理:支持手动刷新(不闪烁整个网页)和手动删除已失效记录。
3. 部署指南
第一步:创建存储
在 Cloudflare 控制台,进入 Storage & Databases -> KV,创建一个名为 email_storage 的命名空间。
第二步:配置环境变量与绑定
在 Worker 的设置页面,你需要配置两个关键变量:
- KV 绑定:将
EMAIL_CODES绑定到刚才创建的 KV 空间。 - 环境变量:
AUTH_PASS: 你的管理后台访问密码。FORWARD_EMAIL: (可选) 原始邮件需要转发到的真实邮箱地址。
第三步:邮件路由绑定
前往域名的 Email Routing -> Routing rules,添加一个路由规则:
- Catch-all 或特定的邮箱前缀。
- Action 选择 Send to Worker,并指向你刚写好的 Worker。
4. 使用小贴士
随机前缀工具
面板顶部内置了一个 12位随机前缀生成器(小写字母+数字组合)。
- 用法:点击生成一个前缀,直接复制。
- 注册:在注册界面输入
[前缀]@[你的域名.com]。 - 收件:回到面板点一下刷新,秒出验证码。
安全提示
虽然加了密码访问,但建议不要用于极其重要的金融账户。这个工具的最佳场景是 测试账号、薅羊毛、临时社交账号 的注册。
5. 项目源码
完整源码已开源:Cloudflare-OTP-Extractor
欢迎 Star ⭐
6. 结语
Cloudflare 再次向我们展示了什么叫真正的”边缘计算”。通过不到 200 行的代码,我们就白嫖了一套功能完备的私有邮件验证码中心。
如果你也厌倦了在各种临时邮箱网站刷新的日子,不妨动手给自己做一个。