使用Cloudflare worker 部署临时邮箱系统V2-增加 基于 Resend 使用 临时邮箱发送邮件

书接上回,有佬友说 临时邮箱发件的功能,所以 V2 给佬友们 增加了使用 Resend api来发送邮件 并且增加了自定义邮箱名称的功能

开源地址 :GitHub - idinging/freemail: Cloudflare 域名邮箱系统搭建 domain mail tempmail

展示地址 :https://mailexhibit.dinging.top/

展示密码 :admin

Resend 密钥获取与配置教程

本项目支持通过 Resend 提供的 API 进行发件(发件箱)。本文档介绍从申请密钥、绑定域名到在 Cloudflare Workers 中配置的完整流程。

读取的环境变量优先级:RESEND_API_KEY > RESEND_TOKEN > RESEND。推荐使用 RESEND_API_KEY

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

  • 登录 Resend 后台,进入 Domains,点击 Add Domain。

  • 按向导添加你的发件域名,并在 DNS 处添加相应记录,待验证通过。

示意图(流程参考):





完成后,确保域名状态为 Verified。发件地址必须使用该已验证域名,例如:[email protected]

2. 创建 Resend API Key

  • 进入 Resend → API Keys,点击 Create API Key。

  • 建议选择可读写权限(Emails: send/read/update),并妥善保存生成的 Key。

参考截图:



发件示例

支持多邮箱地址 以 英文逗号分隔即可

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,同时自动生成纯文本版本,提升兼容性。

27 个赞

感谢分享,学习了!

感谢分享

太厉害辣 :tieba_002:

感谢佬,学到了

原来我是第一个 Star 的,才过去一两天就 80 了。牛逼。

感谢大佬。

部署完,密码一直错误啊!而且你这教程也是有缺失,希望补充/捋顺 :sweat_smile:

感谢分享

账号重新注册试试

啊???

手动配置变量名称,ADMIN_PASSWORD


1 3 5 是必须的,1 3 是登陆密码和JWT验证 5 是域名地址

设置了的,而且重新部署了,还是密码错误

JWT验证从哪找? :sweat_smile:

截图环境变量

随便填一串字符串就行

是在“变量和机密”这里添加,还是“构建-变量和机密”那里

OK,后台密码可以了,但是这一步的没找到啊:

  1. 配置邮件路由(必需用于收取真实邮件)
  • 进入域名的 Email Routing 设置
  • 添加 Catch-all 规则
  • 目标设置为 Worker: temp-mail-worker