news 2026/8/24 9:23:03

Freemail接入Resend发件渠道:从创建API Key到第一封邮件发出的完整教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Freemail接入Resend发件渠道:从创建API Key到第一封邮件发出的完整教程

Freemail接入Resend发件渠道:从创建API Key到第一封邮件发出的完整教程

【免费下载链接】freemailCloudflare 域名邮箱系统 临时邮箱系统 支持API 调用 支持多渠道发件 支持用户管理 domain mail tempmail项目地址: https://gitcode.com/gh_mirrors/free/freemail

Freemail 是一款基于 Cloudflare Workers + D1 的开源临时邮箱系统,支持 API 调用、邮件转发与多渠道发件。本文手把手带你完成Freemail 接入 Resend 发件渠道的全流程:绑定并验证发信域名 → 创建 Resend API Key → 配置到 Cloudflare Workers → 发出第一封邮件,全程不到 15 分钟 💡

为什么用 Resend 给临时邮箱发件?

Freemail 本身负责"收"(Cloudflare Email Routing 负责收件路由),而"发"则由第三方发件渠道完成。目前项目内置三大发件渠道:Resend、SendFlare、Cyberpersons,三者的配置格式完全一致,可以同时启用、按发件人域名自动路由。

Resend 作为最常用的发件渠道,优势在于:

  • 📧纯 API 发件:无需 SMTP,Worker 里一个fetch就能发出邮件
  • 🔐密钥简单:一个 API Key 即可,支持按域名精细授权
  • 🌐多域名:同一个变量里可配置多个域名的独立密钥

代码读取密钥的环境变量优先级为:RESEND_API_KEY>RESEND_TOKEN>RESEND,推荐统一使用RESEND_API_KEY

开始前的准备工作

准备项说明
Cloudflare 账号已部署 Freemail(可用一键部署按钮快速完成)
一个自有域名yourdomain.com,需在 Cloudflare 托管或可编辑其 DNS
Resend 账号免费注册即可获得发件额度
发件权限严格管理员默认可发件;普通用户需在管理后台开启can_send

第一步:在 Resend 绑定并验证发信域名

发件的前提是域名在 Resend 侧完成验证,否则所有发件请求都会被拒绝。

  1. 登录 Resend 后台,左侧菜单进入Domains,点击右上角Add Domain

  1. 按向导输入你的发件域名(如yourdomain.com),Resend 会生成需要添加的 DNS 记录:

  1. 前往域名的 DNS 管理(Cloudflare 控制台即可),添加 Resend 提示的记录(SPF / MX 等):

  1. 记录添加完成后回到 Resend 点击验证,等待状态变为Verified

  1. 验证通过后,即可使用该域名下的任意地址发件,例如no-reply@yourdomain.com

⚠️注意:发件地址必须使用该已验证域名。Freemail 首页"邮箱后端"里配置的域名,需要与 Resend 已验证域名保持一致。

第二步:创建 Resend API Key

  1. 进入 Resend →API Keys,点击Create API Key

  1. 为密钥起个名字(如mailfree),权限建议选择包含 Emails 读写发送的完整权限:

  1. 创建成功后复制生成的 Key(以re_开头)。Key 只显示一次,请妥善保存

第三步:把 API Key 配置到 Cloudflare Workers

本项目运行在 Cloudflare Workers,密钥需要以Secret形式配置,域名作为普通变量配置。两种任选其一:

方式一:命令行(Wrangler)

# 设置 Resend 密钥(Secret) wrangler secret put RESEND_API_KEY

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

进入 Cloudflare Dashboard → Workers → 选中你的 Worker → Settings → Variables:

  • Secrets添加RESEND_API_KEY,值为你刚创建的 Key
  • Variables确认MAIL_DOMAIN,值为收发件域名列表(多个用逗号分隔,如iding.asia,example.com

💡 使用 Git 集成自动部署时,环境变量不会被提交到代码仓库,请务必在 Dashboard 手动配置。

第四步:部署并发出第一封邮件

  1. 部署(Git 集成部署会自动触发;命令行部署则执行wrangler deploy,本地调试可用wrangler dev
  2. 打开 Freemail 首页,确认"当前邮箱"已生成(如xxxx@你的域名
  3. 点击发邮件,填写收件人、主题与内容:

  1. 点击发送,后端会调用 Resend API 发出邮件,并在数据库中记录该封邮件。稍后切换到收件箱的发件箱标签,即可看到这封已发送的记录与详情 ✅

后端实现位于src/api/send.jssrc/email/providers/resend/index.js:发送成功后会写入sent_emails表(含provider字段标记渠道),前端"发件箱"读取的就是这份记录。

多域名发信如何配置?

如果你有多个域名且希望各自使用独立的 Resend 密钥(独立计费/限额),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"}'

配置多个渠道时,路由规则为:键值对/JSON 命中优先 → 单密钥兜底(SendFlare → Resend → Cyberpersons 依次匹配),均未命中则报错"未找到域名对应的发件 API Key"。路由逻辑在src/email/providers/index.jssrc/email/providers/shared.js中实现。

常见问题排查

现象原因与解决
提示"未配置 Resend API Key"未设置RESEND_API_KEY,或未以 Secret 形式写入,检查 Workers → Settings → Secrets
403 / Unauthorized发件域名未在 Resend 完成验证,或 From 地址与已验证域名不一致
429 限流短时间内请求过密,稍后重试或改用批量接口POST /api/send/batch
普通用户发送报 403用户未开启发件权限,需在管理后台打开can_send
中文/HTML 显示异常项目已自动为 HTML 生成纯文本版本,确认收件客户端支持

相关文件速查

  • 📄 官方 Resend 配置教程:docs/resend.md
  • 📄 多渠道适配说明:docs/provider-adapter.md
  • 📄 Resend 渠道实现:src/email/providers/resend/index.js
  • 📄 渠道路由分发器:src/email/providers/index.js
  • 📄 发件记录接口:src/api/send.js
  • 📄 本地变量示例:wrangler.toml

到这里,你的 Freemail 就已经拥有 Resend 发件能力了。如果还想接入 SendFlare 或 Cyberpersons,只要按照同样的格式配置对应的SENDFLARE_API_KEY/CYBERPERSONS_API_KEY环境变量即可,无需改动任何代码 🎉

【免费下载链接】freemailCloudflare 域名邮箱系统 临时邮箱系统 支持API 调用 支持多渠道发件 支持用户管理 domain mail tempmail项目地址: https://gitcode.com/gh_mirrors/free/freemail

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 9:15:50

数学建模竞赛:从问题识别到模型适配的3小时实战路径

1. 从“造轮子”到“找轮子”:数学建模竞赛的思维跃迁如果你参加过数学建模竞赛,或者正准备参加,大概率经历过这样的场景:拿到赛题后,团队立刻陷入激烈的头脑风暴,试图从零开始构建一个“完美”的模型。大家…

作者头像 李华