Skip to content

codingstu/temporary-email

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Freemail - 临时邮箱服务

一个基于 Cloudflare Workers + D1 + R2 构建的开源临时邮箱服务,支持邮件接收、发送、转发、用户管理等完整功能。

当前版本:V4.8 - 新增单个邮件转发和收藏功能

转发的地址需要在cloudflare Email Addresses中验证

📖 一键部署指南 | 📬 Resend 发件配置 | 📚 API 文档

功能特性

类别 特性
📧 邮箱管理 随机生成临时邮箱 · 多域名支持 · 置顶/收藏 · 历史记录 · 邮箱搜索
💌 邮件功能 实时接收 · 自动刷新 · 验证码智能提取 · HTML/纯文本 · 邮件转发
✉️ 发件支持 Resend API 集成 · 多域名密钥 · 批量发送 · 定时发送 · 发件记录
👥 用户管理 三层权限模型 · 用户/邮箱分配 · 邮箱单点登录 · 登录权限控制
🎨 现代界面 毛玻璃效果 · 响应式设计 · 移动端适配 · 列表/卡片视图
技术架构 Cloudflare Workers · D1 数据库 · R2 存储 · Email Routing

💡 邮箱用户自行修改密码功能默认关闭,如需开启请将 mailbox.html 第 77-80 行取消注释。

版本历史

V4.8(当前版本)- 邮件转发和收藏
  • 邮箱管理页面支持按转发/收藏状态筛选
  • 支持将指定邮箱转发到目标邮箱
  • 批量前缀转发可通过 FORWARD_RULES 环境变量配置
V4.5 - 多域名发送配置
  • 支持为不同域名配置不同的 Resend API 密钥
  • 支持键值对、JSON、单密钥三种配置格式
  • 系统根据发件人域名自动选择 API 密钥
V4.0 - 邮箱登录与全局管理
  • 支持邮箱地址单点登录
  • 全局邮箱管理功能,可限制单个邮箱登录
  • 邮箱搜索、随机人名生成、列表/卡片视图切换
V3.x - 用户管理与性能优化
  • V3.5:数据库查询优化、R2 存储完整 EML、移动端适配
  • V3.0:三层权限模型、用户管理后台、前端权限防护
V1.x ~ V2.x - 基础功能
  • V2.0:Resend 发件集成、邮箱置顶
  • V1.0:邮箱生成、邮件接收、验证码提取

部署配置

快速开始

  1. 部署到 Cloudflare:Fork 本仓库,按照 部署指南 完成配置
  2. 配置邮件路由(收件必需):域名 → Email Routing → Catch-all → 绑定 Worker
  3. 配置发件(可选):参考 Resend 配置教程

使用 Git 集成部署时,请在 Workers → Settings → Variables 中手动配置环境变量

⚠️ 防止“部署后变量丢失”

  1. 保持 wrangler.toml 不包含 [vars](本项目已处理)
  2. 不要随意修改 Worker 名称 name,避免发布到新脚本导致看起来像“变量被清空”
  3. 每次发布后在 Dashboard → Worker → Settings 核对绑定,确认存在 TEMP_MAIL_DBMAIL_EMLMAIL_DOMAINJWT_TOKEN
  4. 访问 /api/runtime-config-health,确认 success=true;若为 503,按返回 missing 字段补齐变量/绑定

CI 持久注入部署(推荐,彻底规避变量丢失)

仓库已提供 GitHub Actions 工作流 deploy-worker.yml

  1. 在 GitHub 仓库 → Settings → Secrets and variables → Actions 中添加:
    • 必填:CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_IDADMIN_PASSWORDJWT_TOKENMAIL_DOMAIN
    • 可选:RESEND_API_KEYGUEST_PASSWORDREPO_URLSITE_NAMEFOOTER_TEXTFORWARD_RULES
    • 可选健康检查地址:WORKER_HEALTH_URL(例如 https://your-worker.example.workers.dev
  2. 推送到 main 分支后自动部署,部署前会重新注入 Secrets,避免 Dashboard 手工改动导致漂移。
  3. 部署后访问 /api/runtime-config-health,若返回 success=true 即表示运行时配置完整。

环境变量

变量名 说明 必需
TEMP_MAIL_DB D1 数据库绑定
MAIL_EML R2 存储桶绑定
MAIL_DOMAIN 邮箱域名,多个用逗号分隔
ADMIN_PASSWORD 严格管理员密码
ADMIN_NAME 严格管理员用户名(默认 admin
JWT_TOKEN JWT 签名密钥
RESEND_API_KEY Resend 发件密钥,支持多域名配置
FORWARD_RULES 邮件转发规则
SITE_NAME 站点名称(左上角品牌、标题、页脚等)
REPO_URL GitHub 仓库地址(留空隐藏按钮)
FOOTER_TEXT 页脚文字(默认 "简约而不简单")
RESEND_API_KEY 配置格式
# 单密钥(向后兼容)
RESEND_API_KEY="re_xxxxxxxxxxxxxxxxxxxxxxxx"

# 键值对格式(推荐)
RESEND_API_KEY="domain1.com=re_key1,domain2.com=re_key2"

# JSON格式
RESEND_API_KEY='{"domain1.com":"re_key1","domain2.com":"re_key2"}'

系统会根据发件人域名自动选择对应的 API 密钥。

FORWARD_RULES 配置格式

规则按前缀匹配,* 为兜底规则。

⚠️ 重要:转发目标邮箱必须在 Cloudflare 控制台中验证后才能使用:

  1. 进入 Cloudflare 控制台 → 域名 → 电子邮件 → 电子邮件路由
  2. 切换到「目标地址」选项卡
  3. 点击「添加目标地址」,输入转发目标邮箱
  4. 前往目标邮箱收取验证邮件并点击确认链接
# 键值对格式
FORWARD_RULES="[email protected],[email protected],*[email protected]"

# JSON格式
FORWARD_RULES='[{"prefix":"vip","email":"[email protected]"},{"prefix":"*","email":"[email protected]"}]'

# 禁用转发
FORWARD_RULES="""disabled""none"

故障排除

常见问题
  1. 邮件接收不到:检查 Email Routing 配置、MX 记录、MAIL_DOMAIN 变量
  2. 数据库连接错误:确认 D1 绑定名为 TEMP_MAIL_DB,检查 database_id
  3. 登录问题:确认 ADMIN_PASSWORD 和 JWT_TOKEN 已设置,清除浏览器缓存
  4. 界面显示异常:检查静态资源路径,查看浏览器控制台错误
  5. 部署后变量“丢失”:先确认是否发布到了错误账号/错误脚本名,再到 Worker Settings 检查 bindings 是否包含 TEMP_MAIL_DBMAIL_EMLMAIL_DOMAINJWT_TOKEN,并调用 /api/runtime-config-health 查看缺失项
调试技巧
# 本地调试
wrangler dev

# 查看实时日志
wrangler tail

# 检查数据库
wrangler d1 execute TEMP_MAIL_DB --command "SELECT * FROM mailboxes LIMIT 10"

注意事项

  • 静态资源缓存:更新后在 Cloudflare 控制台 Purge Everything,浏览器强制刷新
  • R2/D1 费用:有免费额度限制,建议定期清理过期邮件
  • 安全:生产环境务必修改默认的 ADMIN_PASSWORDJWT_TOKEN

许可证

Apache-2.0 license

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors