Vmail
📫 只需一个域名部署临时邮箱到 Cloudflare Worker,使用 D1 保存数据,支持多域名后缀,密码找回,开放API接口。
𝐕𝐌𝐀𝐈𝐋.𝐃𝐄𝐕 部署教程 · AI帮你部署 · API 文档 · English | 简体中文 使用 Cloudflare Email Worker 实现的临时电子邮件服务 The project is written primarily in TypeScript, distributed under the GNU General Public License v3.0 license, first published in 2024. It has gained significant community traction with 1,414 stars and 359 forks on GitHub. Key topics include: cloudflare-workers, d1-database, email, email-sender, temporary-email.
<a href="https://nbility.dev/register?aff=Dptp"><img align="center" width="50%" alt="og-banner" src="https://github.com/user-attachments/assets/b338bfca-71ed-447a-bde5-18e5677cb8dc" /></a>
🌟 推荐 Claude Code 稳定 API 渠道:nbility.dev ,支持 claude-opus-4-6 等主流 AI Coding 大模型🥳
🌈 特点
- 🎯 隐私友好,无需注册,开箱即用
- ✈️ 支持邮件收发
- ✨ 支持保存密码,找回邮箱
- 😄 支持多域名后缀
- 🔌 开放 RESTful API,支持程序化调用
- 🚀 快速部署,纯 Cloudflare 方案,无需服务器
原理:
- Email worker 接收电子邮件
- 前端 (Vite + React) 显示电子邮件
- 邮件存储 (Cloudflare D1)
- 发信使用 MailChannels API
👋 自部署教程
本项目已完全基于 Cloudflare Pages 和 Cloudflare D1 构建,大大简化了部署流程。您只需要一个托管在 Cloudflare 上的域名即可。
准备工作
- Cloudflare 账户与托管在 Cloudflare 上的域名
- 本地安装 Node.js 环境 (版本 >= 18.x) 和 pnpm
自动部署 (推荐)
本项目已包含一个预先配置好的 GitHub Action 工作流,可以帮助您自动将 Vmail 应用部署到 Cloudflare。
详细步骤请参考 GitHub Action 自动部署教程。
手动部署步骤
-
克隆项目到本地
bashgit clone https://github.com/oiov/vmail cd vmail pnpm install -
创建 Cloudflare D1 数据库
在 Cloudflare 控制台或使用 Wrangler CLI 创建一个 D1 数据库。 -
配置
wrangler.toml
将根目录下的wrangler.toml文件中的${...}占位符替换为您的 Cloudflare 和 D1 配置信息。您也可以通过 Cloudflare Pages 的环境变量来设置这些值。 -
构建和部署
bash# 构建前端应用 pnpm run build # 部署到 Cloudflare pnpm run deployWrangler 将会自动处理前端静态资源和 Worker 的部署,并根据配置应用数据库迁移。
-
配置电子邮件路由
在您的 Cloudflare 域名管理界面,进入Email->Email Routing->Routes,设置一个Catch-all规则,将所有发送到您域名的邮件Send to a Worker,选择您刚刚部署的 Worker。
环境变量
在部署到 Cloudflare Pages 时,您需要配置以下环境变量:
DATABASE_NAME: 您的 D1 数据库名称。DATABASE_ID: 您的 D1 数据库 ID。COOKIES_SECRET: 用于签名 Cookie 的密钥。EMAIL_DOMAIN: 您的邮箱域名,例如example.com,example.net。TURNSTILE_KEY: 您的 Turnstile 站点密钥,可选。TURNSTILE_SECRET: 您的 Turnstile 密钥,可选。PASSWORD: 站点访问密码(可选)。API_RATE_LIMIT_PER_MINUTE: API 每分钟请求限制(可选,默认 100)。SHOW_AFF: 是否展示推广弹框和常驻推广链接(可选,true开启,默认不展示)。ENABLE_OPENAPI: 是否开启 OpenAPI 调用功能(可选,默认开启;设置为false时禁用 API Key 创建与/api/v1/*调用)。
🔨 本地运行调试
-
复制环境变量文件
bash# 此命令会创建一个本地环境变量文件,wrangler dev 会自动加载 cp .env.example .env -
填写本地环境变量
在.env文件中填写必要的环境变量,特别是D1_DATABASE_ID等。您需要先在 Cloudflare 创建一个 D1 数据库用于本地开发。 -
启动开发服务器
bashpnpm run dev该命令会同时启动前端 Vite 开发服务器和本地的 Wrangler Worker 环境。
📖 API 文档
Vmail 提供完整的 RESTful API,支持通过程序化方式创建临时邮箱、查询收件箱。
获取 API Key
访问 API 文档页面 创建免费的 API Key。
API 端点
| 方法 | 端点 | 说明 |
|---|---|---|
POST | /api/v1/mailboxes | 创建临时邮箱 |
GET | /api/v1/mailboxes/:id | 获取邮箱信息 |
GET | /api/v1/mailboxes/:id/messages | 获取收件箱(支持分页) |
GET | /api/v1/mailboxes/:id/messages/:messageId | 获取邮件详情 |
DELETE | /api/v1/mailboxes/:id/messages/:messageId | 删除邮件 |
快速开始
bash# 1. 创建临时邮箱 curl -X POST https://vmail.dev/api/v1/mailboxes \ -H "X-API-Key: your-api-key" \ -H "Content-Type: application/json" # 响应: { "data": { "id": "abc123", "address": "random@domain.com", ... } } # 2. 查询收件箱 curl https://vmail.dev/api/v1/mailboxes/abc123/messages \ -H "X-API-Key: your-api-key" # 3. 获取邮件详情 curl https://vmail.dev/api/v1/mailboxes/abc123/messages/msg_001 \ -H "X-API-Key: your-api-key"
完整文档请访问:https://vmail.dev/api-docs
📝 License
GNU General Public License v3.0
Star History
Contributors
Showing top 4 contributors by commit count.
