Skip to content
返回云服务

Cloudflare Email Workers

在边缘编程处理入站邮件 — 解析、过滤、转发和触发动作。

Cloudflare进阶

为什么

Email Workers 让你无需邮件服务器即可对入站邮件运行代码。解析 MIME、检查 SPF/DKIM、转发 Slack 或自动回复。免费:10 万邮件/月,免 Postfix 维护。

何时使用

用于 support@ 自动路由、abuse@ 解析、退信处理和入站邮件转 webhook。避免发送出站邮件(用 Resend/SES)或重垃圾邮件过滤。

如何做

1. 启用 Email Routing — 面板 → Email → Enable 2. 添加 catch-all 或地址规则 → 路由到 Worker 3. 编写 handler — export default { async email(message, env, ctx) {...} } 4. 解析 — message.raw(ReadableStream)、message.from、message.to、message.headers 5. 转发 — message.forward("[email protected]") 或 message.setReject("550") 6. 回复 — 用 MailChannels 绑定(Workers 免费出站) 7. 测试 — wrangler dev --email 模拟入站

示例

export default { async email(message: ForwardableEmailMessage, env: Env, ctx: ExecutionContext) { // 非受信域拒绝 if (!message.from.endsWith("@trusted.com")) { message.setReject("550 未授权"); return; } // 解析主题,按前缀路由 const subject = message.headers.get("subject") || ""; if (subject.startsWith("[URGENT]")) { await fetch(env.SLACK_WEBHOOK, { method: "POST", body: JSON.stringify({ text: `紧急: ${subject}` }) }); } // 转发到真实收件箱 await message.forward("[email protected]"); }, };

常见问题

  • ⚠默认无出站 — Email Workers 仅入站,出站用 MailChannels/Resend
  • ⚠10MB 邮件大小限制 — 大附件截断,通过流卸到 R2
  • ⚠SPF/DKIM 不自动验证 — 信任 from 前手动检查头

最佳实践

  • ✓行动前验证 SPF/DKIM — message.headers.get('received-spf'),防伪造
  • ✓大邮件流到 R2 — 别缓冲在内存,Worker 限 128MB
  • ✓用 catch-all + 路由逻辑 — 一个 Worker 处理所有地址,比按地址简单

常见问题解答

什么是Cloudflare Email Workers?它解决什么问题?

在边缘编程处理入站邮件 — 解析、过滤、转发和触发动作。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Cloudflare Email Workers?

两步即可跑通:① 启用 Email Routing — 面板 → Email → Enable;② 添加 catch-all 或地址规则 → 路由到 Worker。建议先用免费套餐验证流程,再接入生产环境。

Cloudflare Email Workers 最容易踩的坑是什么?

最高频的问题是:默认无出站 — Email Workers 仅入站,出站用 MailChannels/Resend。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Cloudflare Email Workers 的最佳实践有哪些?

Cloudflare Email Workers 的最佳实践包括:行动前验证 SPF/DKIM — message.headers.get('received-spf'),防伪造;大邮件流到 R2 — 别缓冲在内存,Worker 限 128MB;用 catch-all + 路由逻辑 — 一个 Worker 处理所有地址,比按地址简单。其中首条「行动前验证 SPF/DKIM — message.headers.get('received-spf'),防伪造」应作为团队默认规范写入 IaC 模板。

Cloudflare Email Workers 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Cloudflare Email Workers 多数提供免费套餐,先在免费额度内验证再放量。