Cloudflare域名临时邮箱

admin
9月23日发布 /正在检测是否收录...

一、cloudflare_temp_email

image

image

部署地址:https://temp-mail-docs.awsl.uk/

核心功能

邮件处理

  • 使用 rust wasm 解析邮件,解析速度快,几乎所有邮件都能解析,node 的解析模块解析邮件失败的邮件,rust wasm 也能解析成功
  • 支持发送邮件,支持 DKIM 验证
  • 支持 SMTP 和 Resend 等多种发送方式
  • 增加查看 附件 功能,支持附件图片显示
  • 支持 S3 附件存储和删除功能
  • 垃圾邮件检测和黑白名单配置
  • 邮件转发功能,支持全局转发地址

用户管理

  • 使用 凭证 重新登录之前的邮箱
  • 添加完整的用户注册登录功能,可绑定邮箱地址,绑定后可自动获取邮箱JWT凭证切换不同邮箱
  • 支持 OAuth2 第三方登录(Github、Authentik 等)
  • 支持 Passkey 无密码登录
  • 用户角色管理,支持多角色域名和前缀配置
  • 用户收件箱查看,支持地址和关键词过滤

管理功能

  • 完整的 admin 控制台
  • admin 后台创建无前缀邮箱
  • admin 用户管理页面,增加用户地址查看功能
  • 定时清理功能,支持多种清理策略
  • 获取自定义名字的邮箱,admin 可配置黑名单
  • 增加访问密码,可作为私人站点

集成与扩展

  • 完整的 Telegram Bot 支持,以及 Telegram 推送,Telegram Bot 小程序
  • 添加 SMTP proxy server,支持 SMTP 发送邮件,IMAP 查看邮件
  • Webhook 支持,消息推送集成支持
  • CF Turnstile 人机验证限流配置,防止滥用

Gihub Actions 部署

初始化/更新 D1 数据库

创建数据库

打开 cloudflare 控制台,选择 Storage & Databases -> D1 SQL Database -> Create Database​,点击创建数据库

image

创建完成后,我们在 cloudflare 的控制台可以看到 D1 数据库

初始化数据库注意
你也可以跳过初始化数据库,在部署完成后,在 admin 页面的 快速设置 -> 数据库 中,点击 初始化数据库 按钮来初始化数据库

打开 Console​ 标签页,输入仓库中 db/schema.sql​ 文件的内容,点击 Execute 执行

image

更新数据库 schema

schema 更新,请确认你之前部署的版本,

查看 更新日志

找到需要执行的 patch​ 文件, 执行, 例如: db/2024-01-13-patch.sql

打开 Console​ 标签页,输入 patch​ 文件的内容,点击 Execute​ 执行

image

Github Actions 配置

Fork 仓库并启用 Actions
  • 在 GitHub fork 本仓库
  • 打开仓库的 Actions​ 页面
  • 找到 Deploy Backend​ 点击 enable workflow​ 启用 workflow
  • 如果需要前后端分离部署, 找到Deploy Frontend​ 点击 enable workflow​ 启用 workflow
配置 Secrets

然后在仓库页面 Settings​ -> Secrets and variables​ -> Actions​ -> Repository secrets​, 添加以下 secrets​:

  • 公共 secrets

    名称说明
    CLOUDFLARE_ACCOUNT_IDCloudflare 账户 ID, 参考文档
    CLOUDFLARE_API_TOKENCloudflare API Token, 参考文档
  • worker 后端 secrets

    名称说明
    BACKEND_TOML后端配置文件,参考此处
    DEBUG_MODE(可选) 是否开启调试模式,配置为 true 开启, 默认 worker 部署日志不会输出到 Github Actions 页面,开启后会输出
    BACKEND_USE_MAIL_WASM_PARSER(可选) 是否使用 wasm 解析邮件,配置为 true 开启, 功能参考 配置 worker 使用 wasm 解析邮件
    USE_WORKER_ASSETS(可选) 部署带有前端资源的 Worker, 配置为 true 开启
  • pages 前端 secrets

    注意

    如果选择部署带有前端资源的 Worker, 则无须配置这些 secrets

    名称说明
    FRONTEND_ENV前端配置文件,请复制 frontend/.env.example 的内容,并参考此处修改
    FRONTEND_NAME你在 Cloudflare Pages 创建的项目名称,可通过 用户界面 或者 命令行 创建
    FRONTEND_BRANCH(可选) pages 部署的分支,可不配置,默认 production
    TG_FRONTEND_NAME(可选) 你在 Cloudflare Pages 创建的项目名称,同 FRONTEND_NAME,如果需要 Telegram Mini App 功能,请填写
部署
  • 打开仓库的 Actions​ 页面
  • 找到 Deploy Backend​ 点击 Run workflow​ 选择分支手动部署
  • 如果需要前后端分离部署, 找到 Deploy Frontend​, 点击 Run workflow​ 选择分支手动部署
如何配置自动更新
  1. 打开仓库的 Actions​ 页面,找到 Upstream Sync​,点击 enable workflow​ 启用 workflow
  2. 如果 Upstream Sync​ 运行失败,到仓库主页点击 Sync​ 手动同步即可

配置邮件转发

设置完成后才能接收邮件了

回到 cloudflare 控制台,点击菜单账户主页,再点你的域名

图片[1] - Cloudflare域名临时邮箱 - 清~幽殇

菜单栏会发生变化

图片[2] - Cloudflare域名临时邮箱 - 清~幽殇

图片[3] - Cloudflare域名临时邮箱 - 清~幽殇

图片[4] - Cloudflare域名临时邮箱 - 清~幽殇

启用电子邮件

图片[5] - Cloudflare域名临时邮箱 - 清~幽殇

图片[6] - Cloudflare域名临时邮箱 - 清~幽殇

设置转发到 worker

图片[7] - Cloudflare域名临时邮箱 - 清~幽殇

图片[8] - Cloudflare域名临时邮箱 - 清~幽殇

设置完成的样子

图片[9] - Cloudflare域名临时邮箱 - 清~幽殇

使用 Resend 发送邮件

1. 在 Resend 绑定并验证发信域名

  • 登录 Resend 后台,进入 Domains,点击 Add Domain。
  • 按向导添加你的发件域名,并在 DNS 处添加相应记录,待验证通过。

示意图(流程参考):

图片[10] - Cloudflare域名临时邮箱 - 清~幽殇

图片[11] - Cloudflare域名临时邮箱 - 清~幽殇

图片[12] - Cloudflare域名临时邮箱 - 清~幽殇

图片[13] - Cloudflare域名临时邮箱 - 清~幽殇

图片[14] - Cloudflare域名临时邮箱 - 清~幽殇

完成后,确保域名状态为 Verified。发件地址必须使用该已验证域名,例如:no-reply@yourdomain.com

2. 创建 Resend API Key

  • 进入 Resend → API Keys,点击 Create API Key。
  • 建议选择可读写权限(Emails: send/read/update),并妥善保存生成的 Key。

参考截图:

图片[15] - Cloudflare域名临时邮箱 - 清~幽殇

图片[16] - Cloudflare域名临时邮箱 - 清~幽殇

图片[17] - Cloudflare域名临时邮箱 - 清~幽殇

3. 在 Cloudflare Workers 配置变量

可以在 Cloudflare 的 UI 界面中,在Variables and Secrets​ 下面,将变量 RESEND_TOKEN​ 添加到 secrets 中

配置 Telegram Bot

注意:worker 默认的 worker.dev 域名的证书是不被 telegram 支持的,配置 Telegram Bot 请使用自定义域名

注意:如果要使用 Telegram Bot, 请先新建KV并后端绑定 KV

配置 worker 使用 wasm 解析邮件

如果你使用了 webhook 转发,或者 telegram bot 接受邮件,但是邮件内容是乱码,或者无法解析,你对解析的需要更高的要求,可以使用这个功能。
  1. 下载 worker-with-wasm-mail-parser.zip
  2. 回到 Overview​,找到刚刚创建的 worker,点击 Edit Code​, 删除原来的文件,上传 worker.js​ 和 wasm​ 后缀的文件, 点击 Deploy
    NOTE

    上传需要先点击左侧菜单的 Explorer, 在文件列表的窗口里点击鼠标右键,在右键菜单里找到 Upload

image

image

Telegram Bot 配置

请先创建一个 Telegram Bot,然后获取 token,然后在 Cloudflare 的 UI 界面中添加变量:TELEGRAM_BOT_TOKEN​到 Variables and Secrets 下面

  • 可设置白名单用户
  • 点击初始化​即可完成配置。
  • 点击查看状态​,可以查看当前配置的状态。

image

Mini App部署

从这里下载 zip, telegram-frontend.zip

修改压缩包里面的 index-xxx.js 文件 ,xx 是随机的字符串

搜索 https://temp-email-api.xxx.xxx​ ,替换成你worker 的域名,然后部署新的zip文件

  • 部署完成后,请在 admin 后台的 设置​ -\> 电报小程序​ 页面 电报小程序 URL​ 中填写网页 URL。
  • 请在 @BotFather​ 处执行 /setmenubutton​,然后输入你的网页地址,设置左下角的 Open App​ 按钮。
  • 请在 @BotFather​ 处执行 /newapp​ 新建 app 来注册 mini app。

二、MoeMail部署

image

image

image

特性

  • 隐私保护:保护您的真实邮箱地址,远离垃圾邮件和不必要的订阅
  • 实时收件:自动轮询,即时接收邮件通知
  • 灵活有效期:支持 1 小时、24 小时、3 天或永久有效
  • 主题切换:支持亮色和暗色模式
  • 响应式设计:完美适配桌面和移动设备
  • 自动清理:自动清理过期的邮箱和邮件
  • PWA 支持:支持 PWA 安装
  • 免费自部署:基于 Cloudflare 构建, 可实现免费自部署,无需任何费用
  • 可爱的 UI:简洁可爱萌萌哒 UI 界面
  • 发件功能:支持使用临时邮箱发送邮件,基于 Resend 服务
  • Webhook 通知:支持通过 webhook 接收新邮件通知
  • 权限系统:支持基于角色的权限控制系统
  • OpenAPI:支持通过 API Key 访问 OpenAPI

Github Actions 部署

  1. 自动触发:推送新的 tag 时自动触发部署流程
  2. 手动触发:在 GitHub Actions 页面手动触发

部署步骤

  1. 在 GitHub 仓库设置中添加以下 Secrets:

    • CLOUDFLARE_API_TOKEN​: Cloudflare API 令牌
    • CLOUDFLARE_ACCOUNT_ID​: Cloudflare 账户 ID
    • AUTH_GITHUB_ID​: GitHub OAuth App ID
    • AUTH_GITHUB_SECRET​: GitHub OAuth App Secret
    • AUTH_SECRET​: NextAuth Secret,用来加密 session,请设置一个随机字符串
    • CUSTOM_DOMAIN​: 网站自定义域名,用于访问 MoeMail (可选, 如果不填, 则会使用 Cloudflare Pages 默认域名)
    • PROJECT_NAME​: Pages 项目名 (可选,如果不填,则为 moemail)
    • DATABASE_NAME​: D1 数据库名称 (可选,如果不填,则为 moemail-db)
    • KV_NAMESPACE_NAME​: Cloudflare KV namespace 名称,用于存储网站配置 (可选,如果不填,则为 moemail-kv)
  2. 选择触发方式:

    方式一:推送 tag 触发

    # 创建新的 tag
    git tag v1.0.0
    
    # 推送 tag 到远程仓库
    git push origin v1.0.0

    方式二:手动触发

    • 进入仓库的 Actions 页面
    • 选择 "Deploy" workflow
    • 点击 "Run workflow"
  3. 部署进度可以在仓库的 Actions 标签页查看

注意事项

  • 确保所有 Secrets 都已正确设置
  • 使用 tag 触发时,tag 必须以 v​ 开头(例如:v1.0.0)

Deploy to Cloudflare WorkersDeploy to Cloudflare Workers

邮箱域名配置

在 MoeMail 个人中心页面,可以配置网站的邮箱域名,支持多域名配置,多个域名用逗号分隔
 title=

Cloudflare 邮件路由配置

为了使邮箱域名生效,还需要在 Cloudflare 控制台配置邮件路由,将收到的邮件转发给 Email Worker 处理。

  1. 登录 Cloudflare 控制台
  2. 选择您的域名
  3. 点击左侧菜单的 "电子邮件" -> "电子邮件路由"
  4. 如果显示 “电子邮件路由当前被禁用,没有在路由电子邮件”,请点击 "启用电子邮件路由"
     title=
  5. 点击后,会提示你添加电子邮件路由 DNS 记录,点击 “添加记录并启用” 即可
     title=
  6. 配置路由规则:

    • Catch-all 地址: 启用 "Catch-all"
    • 编辑 Catch-all 地址
    • 操作: 选择 "发送到 Worker"
    • 目标位置: 选择刚刚部署的 "email-receiver-worker"
    • 保存
       title=

注意事项

  • 确保域名的 DNS 托管在 Cloudflare
  • Email Worker 必须已经部署成功
  • 如果 Catch-All 状态不可用(一直 loading),请点击路由规则​旁边的目标地址​, 进去绑定一个邮箱

权限系统

本项目采用基于角色的权限控制系统(RBAC)。

角色配置

新用户默认角色由皇帝在个人中心的网站设置中配置:

  • 公爵:新用户将获得临时邮箱、Webhook 配置权限以及 API Key 管理权限
  • 骑士:新用户将获得临时邮箱和 Webhook 配置权限
  • 平民:新用户无任何权限,需要等待皇帝册封为骑士或公爵

角色等级

系统包含四个角色等级:

  1. 皇帝(Emperor)

    • 网站所有者
    • 拥有所有权限
    • 每个站点只能有一个皇帝
  2. 公爵(Duke)

    • 超级用户
    • 可以使用临时邮箱功能
    • 可以配置 Webhook
    • 可以使用创建 API Key 调用 OpenAPI
    • 可以被皇帝贬为骑士或平民
  3. 骑士(Knight)

    • 高级用户
    • 可以使用临时邮箱功能
    • 可以配置 Webhook
    • 可以被皇帝贬为平民或册封为公爵
  4. 平民(Civilian)

    • 普通用户
    • 无任何权限
    • 可以被皇帝册封为骑士或者公爵

角色升级

  1. 成为皇帝

    • 第一个访问 /api/roles/init-emperor​ 接口的用户将成为皇帝,即网站所有者
    • 站点已有皇帝后,无法再提升其他用户为皇帝
  2. 角色变更

    • 皇帝可以在个人中心页面将其他用户设为公爵、骑士或平民

权限说明

  • 邮箱管理:创建和管理临时邮箱
  • Webhook 管理:配置邮件通知的 Webhook
  • API Key 管理:创建和管理 API 访问密钥
  • 用户管理:升降用户角色
  • 系统设置:管理系统全局设置

系统设置

系统设置存储在 Cloudflare KV 中,包括以下内容:

  • DEFAULT_ROLE​: 新注册用户默认角色,可选值为 CIVILIAN​、KNIGHT​、DUKE
  • EMAIL_DOMAINS​: 支持的邮箱域名,多个域名用逗号分隔
  • ADMIN_CONTACT​: 管理员联系方式
  • MAX_EMAILS​: 每个用户可创建的最大邮箱数量

皇帝角色可以在个人中心页面设置

发件功能

MoeMail 支持使用临时邮箱发送邮件,基于 Resend 服务。

功能特性

  • 临时邮箱发件:可以使用创建的临时邮箱作为发件人发送邮件
  • 角色权限控制:不同角色有不同的每日发件限制
  • 支持 HTML:支持发送富文本格式邮件

角色发件权限

角色每日发件限制说明
皇帝 (Emperor)无限制网站管理员,无发件限制
公爵 (Duke)5封/天默认每日可发送5封邮件
骑士 (Knight)2封/天默认每日可发送2封邮件
平民 (Civilian)禁止发件无发件权限
提示:皇帝可以在个人中心的邮件服务配置中自定义公爵和骑士的每日发件限制。

配置发件服务

  1. 获取 Resend API Key

    • 访问 Resend 官网 注册账号
    • 在控制台中创建 API Key
    • 复制 API Key 供后续配置使用
  2. 配置发件服务

    • 皇帝角色登录 MoeMail
    • 进入个人中心页面
    • 在"Resend 发件服务配置"部分:

      • 启用发件服务开关
      • 填入 Resend API Key
      • 设置公爵和骑士的每日发件限制(可选)
    • 点击保存配置
  3. 验证配置

    • 配置保存后,有权限的用户在邮箱列表页面会看到"发送邮件"按钮
    • 点击按钮可以打开发件对话框进行测试

注意事项

  • Resend 限制:请注意 Resend 服务的发送限制和定价政策
  • 域名验证:使用自定义域名发件需要在 Resend 中验证域名
  • 反垃圾邮件:请遵守邮件发送规范,避免发送垃圾邮件
  • 配额监控:系统会自动统计每日发件数量,达到限额后将无法继续发送
  • 配额重置:每日发件配额在每天 00:00 自动重置

三、Cloud-Mail

image

image

部署文档:https://doc.skymail.ink/

首先你要注册一个域名,如果你要拿来注册一些网站或者游戏比如 steam 不要用 top xyz 这种廉价域名有可能会网站被当临时邮箱拦截

1 绑定域名

注册账号登录到 cloudflare 控制台,开始绑定域名(如果你已经绑定好了可以直接跳到第二步)

图片[18] - Cloudflare域名临时邮箱 - 清~幽殇

图片[19] - Cloudflare域名临时邮箱 - 清~幽殇

选择免费的计划

图片[20] - Cloudflare域名临时邮箱 - 清~幽殇

图片[21] - Cloudflare域名临时邮箱 - 清~幽殇

设置 dns

图片[22] - Cloudflare域名临时邮箱 - 清~幽殇

不同的厂商的修改 dns 都差不多,这里以华为云为例

图片[23] - Cloudflare域名临时邮箱 - 清~幽殇

设置完成后可能要等几分钟,期间可以刷新浏览器看有没有完成

图片[24] - Cloudflare域名临时邮箱 - 清~幽殇

完成后的界面

图片[25] - Cloudflare域名临时邮箱 - 清~幽殇

这样子账户主页就会显示你的域名了,域名绑定完成

图片[26] - Cloudflare域名临时邮箱 - 清~幽殇

2 创建 worker 项目

到项目仓库 fork 项目代码到你的仓库

图片[27] - Cloudflare域名临时邮箱 - 清~幽殇

图片[28] - Cloudflare域名临时邮箱 - 清~幽殇

这样子仓库就会复制到你那边了

图片[29] - Cloudflare域名临时邮箱 - 清~幽殇

回到 cloudflare 控制台,找到 workers 页面导入你的 github 仓库代码

图片[30] - Cloudflare域名临时邮箱 - 清~幽殇

图片[31] - Cloudflare域名临时邮箱 - 清~幽殇

图片[32] - Cloudflare域名临时邮箱 - 清~幽殇

设置启动目录

图片[33] - Cloudflare域名临时邮箱 - 清~幽殇

等待构建部署完成

图片[34] - Cloudflare域名临时邮箱 - 清~幽殇

构建完成后的页面

图片[35] - Cloudflare域名临时邮箱 - 清~幽殇

这时候项目就会出现在 worker 列表了,点击名字进入可以查看和设置

图片[36] - Cloudflare域名临时邮箱 - 清~幽殇

3 设置环境变量

服务还需要设置一些环境变量和绑定数据库才能正常运行

图片[37] - Cloudflare域名临时邮箱 - 清~幽殇

添加以下变量,注意 domain 是 json 类型的,管理员账号之后需要你在注册页面注册

变量名类型作用
domain["你的域名"], 示例:["mornglow.top"],多域名 ["doamin1","domain2"]JSON网站会使用这个域名作为邮箱域名
admin管理员的邮箱,示例:admin@mornglow.top纯文本对应的用户变成管理员
jwt_secret随便输入一串字符串,示例:Z7f!xPq8mV@L2bC$r9X&N1t纯文本登录身份令牌的安全密钥

图片[38] - Cloudflare域名临时邮箱 - 清~幽殇

设置完成自定义域名和环境变量的样子

图片[39] - Cloudflare域名临时邮箱 - 清~幽殇

4 绑定数据库

找到左侧菜单存储和数据库,创建 kv 数据库,数据库名字随意

图片[40] - Cloudflare域名临时邮箱 - 清~幽殇

创建 d1 数据库,数据库名字随意 位置选择离你近的地方

图片[41] - Cloudflare域名临时邮箱 - 清~幽殇

回到 worker 设置界面绑定刚刚创建的数据库 d1 数据库 变量名为 db kv 数据库 变量名为 kv

图片[42] - Cloudflare域名临时邮箱 - 清~幽殇

浏览器输入 https:// 你的自定义域名 / api/init / 你绑定的的 jwt_secret 会自动初始化数据库 (如果之前部署过只会更新不会覆盖原有数据)

图片[43] - Cloudflare域名临时邮箱 - 清~幽殇

浏览器输入你绑定的自定义域名网站已经能打开了,注册登录了

图片[44] - Cloudflare域名临时邮箱 - 清~幽殇

5 启用邮件接收

设置完成后才能接收邮件了

回到 cloudflare 控制台,点击菜单账户主页,再点你的域名

图片[45] - Cloudflare域名临时邮箱 - 清~幽殇

菜单栏会发生变化

图片[46] - Cloudflare域名临时邮箱 - 清~幽殇

图片[47] - Cloudflare域名临时邮箱 - 清~幽殇

图片[48] - Cloudflare域名临时邮箱 - 清~幽殇

启用电子邮件

图片[49] - Cloudflare域名临时邮箱 - 清~幽殇

图片[50] - Cloudflare域名临时邮箱 - 清~幽殇

设置转发到 worker

图片[51] - Cloudflare域名临时邮箱 - 清~幽殇

图片[52] - Cloudflare域名临时邮箱 - 清~幽殇

设置完成的样子

图片[53] - Cloudflare域名临时邮箱 - 清~幽殇

测试接收邮件

图片[54] - Cloudflare域名临时邮箱 - 清~幽殇

6 附件收发

设置完这一步后才能接收附件和发送附件,如果你不需要可以跳过

回到上一级菜单,找到 r2 对象存储,创建存储桶

图片[55] - Cloudflare域名临时邮箱 - 清~幽殇

桶名字可以随便填 位置选择离你近的地方

图片[56] - Cloudflare域名临时邮箱 - 清~幽殇

设置自定义域名

图片[57] - Cloudflare域名临时邮箱 - 清~幽殇

图片[58] - Cloudflare域名临时邮箱 - 清~幽殇

自定义域名添加到项目设置里面

图片[59] - Cloudflare域名临时邮箱 - 清~幽殇

回到 worker 绑定刚才创建的 r2 存储桶

r2 存储桶 变量名为 r2

图片[60] - Cloudflare域名临时邮箱 - 清~幽殇

7 邮件发送

使用第三方服务 resend 发送邮件

浏览器输入 resend.com 注册

图片[61] - Cloudflare域名临时邮箱 - 清~幽殇

添加域名

图片[62] - Cloudflare域名临时邮箱 - 清~幽殇

图片[63] - Cloudflare域名临时邮箱 - 清~幽殇

图片[64] - Cloudflare域名临时邮箱 - 清~幽殇

图片[65] - Cloudflare域名临时邮箱 - 清~幽殇

等待验证完成

图片[66] - Cloudflare域名临时邮箱 - 清~幽殇

验证完成后的样子

图片[67] - Cloudflare域名临时邮箱 - 清~幽殇

创建 apiKey

图片[68] - Cloudflare域名临时邮箱 - 清~幽殇

图片[69] - Cloudflare域名临时邮箱 - 清~幽殇

图片[70] - Cloudflare域名临时邮箱 - 清~幽殇

回到项目网站设置

图片[71] - Cloudflare域名临时邮箱 - 清~幽殇

设置邮件状态回调接口

图片[72] - Cloudflare域名临时邮箱 - 清~幽殇

回调接口 https:// 你的项目自定义域 / api/webhooks

图片[73] - Cloudflare域名临时邮箱 - 清~幽殇

图片[74] - Cloudflare域名临时邮箱 - 清~幽殇

8 人机验证

设置这一步后可以开启人机验证,防止网站被机器人批量注册

菜单栏找到 turnstile

图片[75] - Cloudflare域名临时邮箱 - 清~幽殇

图片[76] - Cloudflare域名临时邮箱 - 清~幽殇

添加你的域名

图片[77] - Cloudflare域名临时邮箱 - 清~幽殇

名字随意

图片[78] - Cloudflare域名临时邮箱 - 清~幽殇

复制这两个密钥

图片[79] - Cloudflare域名临时邮箱 - 清~幽殇

回到项目设置页面设置密钥

图片[80] - Cloudflare域名临时邮箱 - 清~幽殇

9 TG 和其他邮箱转发

在 TG 搜索找到这个人

图片[81] - Cloudflare域名临时邮箱 - 清~幽殇

创建机器人并且获取 token

图片[82] - Cloudflare域名临时邮箱 - 清~幽殇

给机器人一条发消息

图片[83] - Cloudflare域名临时邮箱 - 清~幽殇

浏览器输入 https://api.telegram.org/bot 你的机器 TOKEN/getUpdates 获取 chat_id 如果获取不到就再给机器人发几条消息

图片[84] - Cloudflare域名临时邮箱 - 清~幽殇

设置 token 和 chat_id

图片[85] - Cloudflare域名临时邮箱 - 清~幽殇

转发到其他服务商邮箱 在 cloudflare 验证邮箱

图片[86] - Cloudflare域名临时邮箱 - 清~幽殇

设置邮箱

图片[87] - Cloudflare域名临时邮箱 - 清~幽殇

四、freemail

image

image

image

image

功能特性

现代化界面

  • 毛玻璃效果:采用现代化的毛玻璃(Glassmorphism)设计风格
  • 简约美观:浅色背景,动态渐变,视觉效果出色
  • 响应式设计:完美适配桌面和移动设备
  • 动画效果:平滑的过渡动画和微交互反馈

邮箱管理

  • 智能生成:随机生成临时邮箱地址,支持自定义长度和域名
  • 历史记录:自动保存历史生成的邮箱,方便重复使用
  • 便捷删除:支持删除单个邮箱和批量管理
  • 一键切换:快速在不同邮箱间切换

用户管理功能

  • 角色与权限: 三层权限模型(严格管理员 Strict Admin / 高级用户 Admin / 普通用户 User),严格管理员拥有全部权限
  • 用户列表: 查看用户名、角色、邮箱上限/已用、是否允许发件、创建时间等关键信息
  • 用户邮箱: 查看指定用户名下的邮箱列表,支持一键复制邮箱地址
  • 创建用户: 通过用户名/密码/角色创建新用户
  • 编辑用户: 支持改名、重置密码、角色切换、发件权限开关、调整邮箱上限
  • 分配邮箱: 批量为用户分配邮箱地址(支持多行粘贴,自动格式校验)
  • 删除用户: 解除用户与邮箱的绑定关系(不会删除邮箱实体与邮件数据)
  • 前端权限防护: 管理页进入前进行快速鉴权,未授权自动跳转,避免内容闪现
  • 操作确认与反馈: 关键操作提供二次确认弹窗与统一 Toast 提示,操作状态与结果清晰可见

邮件功能

  • 实时接收:自动接收和显示邮件,支持HTML和纯文本
  • 自动刷新:选中邮箱后每8秒自动检查新邮件
  • 智能预览:自动提取和高亮显示验证码内容
  • 详细查看:优化的邮件详情显示,支持完整内容渲染
  • 一键复制:智能识别验证码并优先复制,或复制完整邮件内容
  • 灵活删除:支持删除单个邮件或清空整个邮箱
  • 发件支持(Resend) :已接入 Resend,可使用临时邮箱地址发送邮件并查看发件记录(发件箱),支持自定义发件显示名(fromName​)与批量/定时/取消等能力

一键部署

Deploy to Cloudflare WorkersDeploy to Cloudflare Workers

1. 首先点击 Deploy to Cloudflare

2 登陆账号后会进入,推荐选择亚洲地区(当然不选择亚洲也没关系)

不要修改数据库名称和R2名称 可能导致无法查询

图片[88] - Cloudflare域名临时邮箱 - 清~幽殇

3. 点击创建部署,然后耐心等待克隆部署

图片[89] - Cloudflare域名临时邮箱 - 清~幽殇

4. 点击继续处理项目,绑定必须的环境变量

图片[90] - Cloudflare域名临时邮箱 - 清~幽殇

环境变量说明
变量名说明必需
TEMP_MAIL_DBD1 数据库绑定
MAIL_EMLR2 存储桶绑定,用于保存完整的邮件 EML 文件
MAIL_DOMAIN用于生成临时邮箱的域名,支持多个,使用逗号或空格分隔(如 iding.asia, example.com​)
ADMIN_PASSWORD后台访问密码(严格管理员登录)
ADMIN_NAME严格管理员用户名(默认 admin​)
JWT_TOKEN / JWT_SECRETJWT 签名密钥(二选一,推荐 JWT_TOKEN​)
RESEND_API_KEYResend 发件 API Key。使用发件功能需要配置
FORWARD_RULES邮件转发(转发到指定邮箱)。支持两种格式:JSON 数组​ 或 逗号分隔 KV

图片[91] - Cloudflare域名临时邮箱 - 清~幽殇

5. 添加完成后点击部署即可

注:这三个变量是必须的,其他变量例如 管理员名称,发邮件密钥可自行决定是否添加​ 最后就可以打开对应的 worker 连接登陆了

图片[92] - Cloudflare域名临时邮箱 - 清~幽殇

6. 默认管理员账号为 admin

7. 记得将域名邮箱的 catch-all 绑定到 worker 上(不绑定无法接收到邮件)

  1. 进入域名的 Email Routing 设置
  2. 添加 Catch-all 规则
  3. 目标设置为 Worker: temp-mail-worker

图片[93] - Cloudflare域名临时邮箱 - 清~幽殇/idingi

8、设置自定义域名(可选)

在 Worker 设置中添加自定义域名,或使用 workers.dev 子域名。

9、FORWARD_RULES 示例

说明:规则按前缀匹配,命中第一个前缀即转发;*​ 为兜底规则。未配置或设置为空/disabled/none 时不进行任何转发。
  • 逗号分隔(KV):

    • FORWARD_RULES="vip=a@example.com,news=b@example.com,*=fallback@example.com"
  • JSON 数组:

    • FORWARD_RULES='[{"prefix":"vip","email":"a@example.com"},{"prefix":"*","email":"fallback@example.com"}]'
  • 仅指定某些前缀(无兜底):

    • FORWARD_RULES="code=a@example.com,login=b@example.com"
  • 禁用转发:

    • FORWARD_RULES=""​ 或 FORWARD_RULES="disabled"​ 或 FORWARD_RULES="none"​ 或 FORWARD_RULES="[]"
      转发的目标地址需要在 Cloudflare 的 Email Addresses 中添加/验证

注意事项

  • 静态资源缓存:Workers + Assets 对静态文件可能有缓存。更新 index.html​ 后如未生效,请在 Cloudflare 控制台进行 Purge Everything​,并在浏览器执行强制刷新(Ctrl/Cmd+F5)。
  • 图标路径:favicon 建议使用相对路径(例如 favicon.svg​),避免挂在子路径时 404。
  • 邮件路由:若需接收真实邮件,请正确配置 Cloudflare Email Routing(MX 记录、Catch‑all → 绑定到 Worker)。
  • R2 存储:R2 用于保存完整的邮件 EML 文件,支持邮件下载功能。R2 有免费额度限制,建议定期清理过期邮件。
  • 数据库与费用:D1 有免费额度限制;建议定期清理过期邮件以节省存储空间与额度。
  • 安全:务必在生产环境修改 ADMIN_PASSWORD​、JWT_TOKEN​,并限制仓库/项目的敏感信息暴露。

Resend 教程(发件)

1. 在 Resend 绑定并验证发信域名

  • 登录 Resend 后台,进入 Domains,点击 Add Domain。
  • 按向导添加你的发件域名,并在 DNS 处添加相应记录,待验证通过。

示意图(流程参考):

图片[94] - Cloudflare域名临时邮箱 - 清~幽殇

图片[95] - Cloudflare域名临时邮箱 - 清~幽殇

图片[96] - Cloudflare域名临时邮箱 - 清~幽殇

图片[97] - Cloudflare域名临时邮箱 - 清~幽殇

图片[98] - Cloudflare域名临时邮箱 - 清~幽殇

完成后,确保域名状态为 Verified。发件地址必须使用该已验证域名,例如:no-reply@yourdomain.com

2. 创建 Resend API Key

  • 进入 Resend → API Keys,点击 Create API Key。
  • 建议选择可读写权限(Emails: send/read/update),并妥善保存生成的 Key。

参考截图:

图片[99] - Cloudflare域名临时邮箱 - 清~幽殇

图片[100] - Cloudflare域名临时邮箱 - 清~幽殇

图片[101] - Cloudflare域名临时邮箱 - 清~幽殇

3. 在 Cloudflare Workers 配置变量

本项目运行在 Cloudflare Workers,需把密钥配置为 Secret,域名配置为普通变量。

方式一:命令行(Wrangler)

# 设置 Resend 密钥(Secret)
wrangler secret put RESEND_API_KEY
# 或者使用下面同义变量(不推荐):RESEND_TOKEN / RESEND

# 设置普通变量(可写入 wrangler.toml 的 [vars])
# 多域名用逗号/空格分隔
# 例:MAIL_DOMAIN="iding.asia, example.com"

方式二:Dashboard(Git 集成部署常用)

  • 进入 Cloudflare Dashboard → Workers → 选中你的 Worker → Settings → Variables。
  • 在 Secrets 添加 RESEND_API_KEY​。
  • 在 Variables 添加 MAIL_DOMAIN​,值为你用于收取 / 发件的域名列表(需与 Resend 已验证域名一致)。

4. 关联项目并部署

# 本地开发
wrangler dev
 # 正式部署
wrangler deploy

确保 wrangler.toml​ 已绑定 D1 数据库与静态资源(仓库已配置)。

5. 前端使用发件功能(发件箱)

  • 在首页先生成或选择一个邮箱地址。
  • 点击 “发邮件”,填写收件人、主题与内容,点击发送。
  • 后端会调用 Resend API 发出邮件,并在数据库记录,前端可在 “发件箱” 查看记录与详情。

注意:

  • 发件地址为当前选中邮箱(形如 xxx@你的域名​)。你的域名需在 Resend 已验证。
  • 若返回 未配置 Resend API Key​,说明没有设置或没有以 Secret 形式提供 RESEND_API_KEY​。

6. 常见问题

  • 403/Unauthorized:域名未验证或 From 与已验证域名不一致。
  • 429 / 限流:短时间大量请求,稍后重试或开启队列。
  • 中文 / HTML 内容:本项目会将 HTML 直接提交给 Resend,同时自动生成纯文本版本,提升兼容性。

7. 相关后端接口

  • POST /api/send​ 发送单封邮件
  • GET /api/sent?from=xxx@domain​ 获取发件记录列表
  • GET /api/sent/:id​ 获取发件详情
  • DELETE /api/sent/:id​ 删除发件记录

以上接口由 src/apiHandlers.js​ 与 src/emailSender.js​ 实现,调用 Resend REST API 完成发件 / 查询 / 取消等操作。

故障排除

  1. 邮件接收不到

    • 检查 Cloudflare 邮件路由配置是否正确
    • 确认域名的 MX 记录设置
    • 验证 MAIL_DOMAIN 环境变量配置
  2. 数据库连接错误

    • 确认 D1 数据库绑定名称为 TEMP_MAIL_DB
    • 检查 wrangler.toml 中的数据库 ID 是否正确
    • 运行 wrangler d1 list​ 确认数据库存在
  3. 登录问题

    • 确认 ADMIN_PASSWORD 环境变量已设置
    • 检查 JWT_TOKEN 或 JWT_SECRET 配置
    • 尝试清除浏览器缓存和 Cookie
  4. 界面显示异常

    • 确认静态资源路径配置正确
    • 检查浏览器控制台是否有 JavaScript 错误
    • 验证 CSS 文件加载是否正常
  5. 自动刷新不工作

    • 确认已选中邮箱地址
    • 检查浏览器是否支持 Page Visibility API
    • 查看网络连接是否稳定

调试技巧

  • 使用 wrangler dev​ 进行本地调试
  • 查看 Worker 的实时日志:wrangler tail
  • 使用浏览器开发者工具检查网络请求
  • 检查 D1 数据库中的数据:wrangler d1 execute TEMP_MAIL_DB --command "SELECT * FROM mailboxes LIMIT 10"
© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论
所有页面的评论已关闭