我等了很久 Cloudflare 邮件发送功能,它上线了——然后我决定自己造一个工具
Cloudflare Email Sending 刚刚进入公测。我很期待。然后我看了文档,发现它解决的根本不是我每天面对的邮件问题——所以我开发了 OhRelay。
Cloudflare 刚刚将 Email Sending 开放了公开测试。我一直在等这个消息。多年来,我一直依赖 Cloudflare Email Routing 管理多个域名的邮件,很好奇这次能不能终于把这件事做完整。
然后我看了文档。才发现它解决的是一个完全不同的问题。
它做了什么(简版)
Cloudflare Email Sending 让你可以通过 Worker 或 REST API 程序化地发送邮件。接入域名后,Cloudflare 自动配置 SPF、DKIM、DMARC,然后在 Worker 里调用 env.EMAIL.send():
await env.EMAIL.send({
to: "user@example.com",
from: "welcome@yourdomain.com",
subject: "欢迎!",
html: "<p>感谢注册。</p>",
});
对于需要从应用发送事务性邮件的开发者来说,确实好用——注册确认、魔法链接、通知邮件。API 设计干净,体验不错。
但这不是我每天面对的邮件问题。
我真正的问题
我同时在运营几个项目,各自用不同的域名。每个域名下有多个地址前缀——hello@、support@、billing@、hey@。我希望所有邮件都落在一个地方,回复时自动用正确的地址,不需要每次手动想。
这对独立开发者、小型团队、同时运营多个项目的人来说非常普遍。而现有的方案都有差不多的问题。
企业邮箱(Google Workspace、Fastmail 等)
能用。但按邮箱、按席位、有时按域名收费。一旦你有四个域名六个地址,每个月光邮件管理就是一笔不小的开销——还没开始做产品。而且还要来回切换不同收件箱。
Cloudflare Email Routing
免费,零运维。发给 support@yourdomain.com 的邮件几分钟内就落进你的 Gmail。收件这侧做得很好。
但当你点击回复,Gmail 用的是你的 Gmail 地址。那个写信给 support@yourdomain.com 的用户,收到的回复来自 yourname@gmail.com。专业形象瞬间崩塌。而 Cloudflare Email Sending 解决不了这个问题——Gmail 没办法把它当 SMTP relay 来处理手动回复。
Gmail “以此地址发送” 别名
可以通过外部 SMTP 在 Gmail 里添加自定义发件地址。地址少的时候还能接受。一旦有六个域名、十几个前缀,每次回复都要手动挑正确的地址——迟早会发错。
这些方案都不够好。
所以我自己造了一个
这段时间,我专门针对这个问题搭建了一个中继层。思路是:坐在 Cloudflare Email Routing 和我现有收件箱之间,入站时保留路由上下文,出站时正确地重写信封。
结果就是 OhRelay。
它做了什么:
- Cloudflare 转发邮件时,OhRelay 把原始收件人地址保存在邮件头里——这样到你的 Gmail 时路由信息不会丢失。
- 你回复时,OhRelay 的 SMTP 网关拦截出站邮件,读取这个上下文,自动把信封重写为
support@yourdomain.com发出——不需要你手动选。 - 支持 Gmail、Outlook 和 Apple Mail。每个收件箱配置一次,之后的回复就自动正确。
- OhRelay 通过 Cloudflare API 自动帮你配置所需的 DNS 记录、部署必要的 Worker 脚本——即使你不懂 DNS、不会写代码,也能完整跑通这套流程。
工作流程:
- 邮件发到
support@yourdomain.com - 通过 Cloudflare Email Routing 落进你的 Gmail
- 你点击回复
- 你的用户收到来自
support@yourdomain.com的回复 ✓
不需要多余的邮箱,不按席位收费,不需要手动选地址。
目前的状态
OhRelay 大概完成了 90%。核心中继已经跑通,真实邮件在流转。如果你已经在用 Cloudflare Email Routing,配置大概需要 15 分钟。
现在需要的是更多真实用户——有实际域名配置和真实邮件工作流的人——来暴露我还没遇到过的边缘情况。每一种新配置都能教会我一些东西,让下一个用户受益。
如果你一直在忍受发件人错误的问题,或者管理着太多域名和地址却感觉现有工具都是凑合,欢迎来试试。从这里开始,配置主要就是 DNS 和邮件客户端里的一个 SMTP 设置。
如果遇到奇怪的边缘情况,欢迎联系我。产品还在”和用户一起打磨”的阶段,真实反馈决定接下来 10% 的走向。
回到 Cloudflare Email Sending:对于需要从应用中发送程序化邮件的开发者,它值得一看。但它是一个开发者 API,不是收件箱工具。在自定义域名地址收信、再从这个地址回复给真实用户——在你的实际邮件客户端里——这个缺口依然在。这才是我一直在解决的问题。