本教程将指导您从零开始部署基于 Cloudflare Workers 的临时邮箱服务。支持自定义域名、邮件存储、Webhook 通知等高级功能,全程约需 20 分钟完成部署。


一、环境准备

1. 基础要求

  • Cloudflare 账号(需开通 Workers 和 D1 数据库服务)
  • 已备案域名(支持自定义邮箱后缀)
  • Node.js v18+ 和 npm
  • Git 客户端

2. 安装依赖

# 安装 Wrangler CLI 工具
npm install -g wrangler

# 验证安装
wrangler --version  # 应输出 3.15+ 版本

二、部署流程

1. 克隆项目仓库

git clone https://github.com/find-xposed-magisk/cloudflare_temp_email.git
cd cloudflare_temp_email

2. 初始化配置文件

# 复制示例配置文件
cp wrangler.toml.example wrangler.toml
cp src/config.example.ts src/config.ts

3. 配置 Cloudflare 服务

  1. 登录 Cloudflare Dashboard
  2. 进入 Workers & PagesD1 → 创建新数据库 temp_mail_db
  3. 进入 Workers KV → 创建命名空间 TEMP_MAIL_KV

4. 修改配置文件

打开 wrangler.toml 文件,替换以下参数:

name = "your-worker-name"
compatibility_date = "2024-05-01"

[[d1_databases]]
binding = "DB"
database_name = "temp_mail_db"
database_id = "your-d1-database-id"  # 从 Cloudflare 控制台获取

[[kv_namespaces]]
binding = "KV"
id = "your-kv-namespace-id"         # 从 Cloudflare 控制台获取

打开 src/config.ts 配置核心参数:

export const DOMAINS = ["mail.yourdomain.com"];  // 你的域名
export const DEFAULT_LOCALE = "zh";              // 默认语言
export const STORAGE_DURATION = 7200;            // 邮件存储时间(秒)

三、数据库初始化

1. 执行迁移脚本

wrangler d1 execute temp_mail_db --file=./schema.sql

2. 验证数据库结构

wrangler d1 execute temp_mail_db --command="SELECT name FROM sqlite_schema WHERE type='table';"
# 应输出 emails、mailboxes 等表

四、域名解析配置

1. 添加 DNS 记录

类型名称内容TTL
MX@10 mail.yourdomain.com3600
TXT_mailauth"v=spf1 include:yourdomain.com ~all"3600

2. 验证配置

dig MX yourdomain.com +short  # 应返回 MX 记录
nslookup -type=TXT _mailauth.yourdomain.com  # 应返回 SPF 记录

五、部署到 Cloudflare

1. 登录 Wrangler

wrangler login

2. 执行部署命令

wrangler deploy

部署成功后控制台将输出服务地址:https://your-worker-name.your-subdomain.workers.dev

3. 绑定自定义域名

  1. 进入 Cloudflare 控制台 → Workers & Pages → 你的服务 → 触发器
  2. Custom Domains 中添加 mail.yourdomain.com

六、功能验证

1. 生成临时邮箱

访问 https://mail.yourdomain.com,页面将自动生成类似 [email protected] 的地址

2. 测试邮件接收

# 使用 curl 发送测试邮件
curl -X POST https://api.mail.yourdomain.com/send \
  -H "Content-Type: application/json" \
  -d '{"to":"[email protected]", "subject":"Test", "text":"Hello World"}'

3. 查看收件箱

访问 https://mail.yourdomain.com/inbox/[email protected] 应看到测试邮件


七、高级配置

1. 启用 Telegram Bot

  1. 创建 Bot 获取 Token
  2. 修改 config.ts

    export const TELEGRAM = {
      ENABLED: true,
      TOKEN: "your-bot-token",
      WEBHOOK_SECRET: "your-secret-key"
    };

2. 配置邮件转发

export const FORWARD_ADDRESS_LIST = [
  { 
    match: "/.*@yourdomain.com/",  // 匹配所有域名邮箱
    forward: ["[email protected]"] // 转发至管理员邮箱
  }
];

3. 设置访问密码

export const ACCESS_PASSWORD = "your-strong-password";  // 访问 /admin 页面需要此密码

八、故障排查

常见问题 1:邮件无法接收

  • 检查 MX 记录是否生效(等待 DNS 缓存刷新)
  • 验证 Workers 日志:wrangler tail

常见问题 2:数据库连接失败

  • 确认 D1 数据库 ID 是否正确
  • 重新执行数据库迁移:wrangler d1 execute temp_mail_db --local --file=./schema.sql

常见问题 3:域名绑定失败

  • 确保域名已添加到 Cloudflare 账户
  • 检查 Workers 的 Custom Domains 配置状态

项目资源

按照本教程操作,您将在 30 分钟内拥有一个企业级临时邮箱服务。如遇问题,可通过 GitHub Issues 提交问题报告。

标签: 临时邮箱, 网页邮箱, temp mail, 搭建教程

添加新评论