零成本搭建专属临时域名邮箱:部署踩坑与发信配置

零成本搭建专属临时域名邮箱:部署踩坑与发信配置

2026年04月04日
1124 字 · 5 分钟

📅 时间: 21:53
🌤️ 天气: 银川 5~21℃ 晴

松江上,念故人老矣,甘卧闲云。

— 吴文英 · 《沁园春·送翁宾旸游鄂渚》

Cloudflare 临时邮箱搭建记录与踩坑总结

最近在 L 站看到一篇关于部署 Cloudflare 临时邮箱的教程,项目借助 CF 的免费额度和自定义域名,可以实现一个支持多前缀的域名邮箱。

原贴教程地址:https://linux.do/t/topic/1666961

原作者的教程写得比较详细,项目本身的部署流程也做了不少简化。不过在实际配置 CF 的邮件路由、Worker 环境以及梳理前端逻辑时,我还是遇到了一些容易卡壳的地方。这里简单记录一下排查和解决的过程,给需要部署的朋友提供一点参考。

1. 检查 Catch-All 路由配置

将域名托管到 CF 后,如果有测试过自带的邮件转发功能,在部署完 mailapi 后端程序后,需要记得回到 CF 的“电子邮件路由”设置里,把“捕获所有地址”的动作修改为“发送到 Worker”,并选中刚刚建好的后端服务。 如果没有修改这一步,发给随机前缀的邮件在 CF 这一层就会被直接丢弃,后端自然也收不到任何日志。

2. 绑定的环境变量大小写

在给 Worker 绑定 D1 数据库和 KV 缓存时,变量名需要严格遵守大写: D1 数据库的变量名必须是大写的 DB KV 命名空间的变量名必须是大写的 KV 如果填错或者写成了小写,代码在往数据库写入邮件数据时会直接报错,导致前端无法读取到邮件。

3. 补充运行环境的兼容性标志

这个细节比较容易漏掉。后端代码在处理邮件解析时,依赖了 Node 运行环境的部分核心模块。 因此,需要在 Worker 的设置 -> 运行时 -> 兼容性标志中,手动添加相应的配置。具体写法是:小写的 nodejs,加上一个英文底线,再接上 compat。不配置这个标志会导致邮件接收逻辑运行异常。

4. 账号登录与收信地址的区别

如果在 Worker 的实时日志里已经看到了接收记录,但前端界面的收件箱依然为空,主要是由于系统的地址归属判定逻辑导致的。 用于登录前端网页的账号仅仅是一个管理凭证,系统不会默认将其直接作为收件地址。需要进入前端的“地址管理”页面,点击“创建新邮箱”,显式地将需要的前缀绑定到当前账号下。完成绑定后,对应前缀收到的邮件才会正常在当前账号的收件箱内展示。

5. 接入第三方 API 实现发信功能

基础教程部署完毕后,邮箱仅支持接收功能。如果需要往外发信,需要配合 Resend 平台来实现。流程大致如下: 在 Resend 注册账号,并添加你的发信域名。 将 Resend 提供的 DNS 验证记录添加到 CF 的域名解析设置中。 等待验证通过后,在 Resend 控制台生成一串 API 密钥。 回到 CF 的 Worker 环境变量设置,新增一个文本变量。变量名为大写的 RESEND,加上英文底线,再接上 TOKEN,变量值填入刚才获取的密钥。 保存配置并重新部署后,刷新前端页面,就能看到发送邮件的入口了。

Resend 免费版每月提供 3000 封的共享收发配额,每日发送上限为 100 封。作为个人备用邮箱或者日常注册账号使用,这个额度已经十分充裕

服务配置

  1. 访问 Resend 官网,注册并登录
  2. 在 Domains 页面点击 Add Domain 添加域名,输入邮箱绑定的域名,并选择区域(Region),例如:North Virginia (us-east-1)
  3. 再让resend自动配置一下等几分钟或者几十分钟,等他变绿就好了
  4. 然后再在cloudflare里配置一下,你获取的token 我的邮箱地址地址 Cloudflare 临时邮件

Thanks for reading!

零成本搭建专属临时域名邮箱:部署踩坑与发信配置

2026年04月04日
1124 字 · 5 分钟