Plunk 替代方案(2026):托管事务 HTTP 邮件 API 与域名邮箱
对照 Plunk 的开源/自托管邮件平台(Docker + SES、活动、workflows)与 Rovela 的托管 POST /emails、Idempotency-Key、入站与域名邮箱——何时双跑。
为什么有人会搜 Plunk 替代方案
Plunk 是一个开源邮件平台(AGPL-3.0,见 GitHub):事务发送、营销活动、workflows、联系人/分群、分析、自定义域名、入站路由,以及可选 SMTP 中继——既可跑 Plunk Cloud,也可 自托管 Docker。自托管文档当前假设 Docker Compose,外加 AWS SES 凭证、PostgreSQL、Redis、Minio,以及 API / 控制台 / 落地页 / 文档(和可选 SMTP)等多组子域名(Self-hosting、Docker deployment)。
2026 年搜 “Plunk alternative” / “Plunk 替代” 通常是这些开发者意图——不是说 Plunk 作为开源邮件软件失败了:
- 喜欢 Plunk 的 API 形态,但不想自己运维 Postgres、Redis、对象存储、SES IAM、反向代理、TLS、升级,以及控制面的多子域名 DNS。
- 想要托管事务路径:验证域名、拿 Bearer key、
POSTJSON——不必拉起 Plunk 整栈,也不必把投递绑死在必须自己预热与盯盘的 AWS SES 账户上。 - 产品需要人类能打开的企业邮箱(
hello@、support@),在同一组织里用 Webmail/IMAP,而不只是 API 驱动的事务 HTML 与活动工具。 - 需要带签名的投递 Webhook、入站 Webhook,以及队列 / AI agent 重试时的
Idempotency-Key,并希望有长期免费档,不必靠自托管才便宜。 - 正在双跑:活动 / workflows / 联系人 CRM 继续放在 Plunk(云或自托管);高频、应用自管的 OTP、密码重置与收据迁到更薄的托管 HTTP 邮件 API。
Rovela 不会克隆 Plunk 的开源自托管栈、AGPL 分发、活动/workflow 构建器,或「自带 SES」架构。它对准的是该搜索里托管事务 HTTP 邮件 API + 域名邮箱这一侧。本文只写文档可核对的内容:Plunk 何时仍合适、Rovela 实际提供什么,以及如何迁移线上邮件 POST 路径——不编造开源或营销自动化对等功能。
其他关键词类兄弟文(勿混钩子):Amazon SES 替代(AWS 仪式感——相关是因为自托管 Plunk 常坐在 SES 上)、Resend 替代、SendGrid 替代、Postmark 替代、Mailgun 替代、Brevo 替代、Mailtrap 替代、SparkPost 替代、Loops.so 替代、Customer.io 替代、Courier.app 替代、Knock.app 替代。本文主关键词仍是 Plunk / useplunk。
何时 Plunk 仍是正确工具
继续用——或双跑——如果:
- 你需要 AGPL 下可自托管的开源控制面,并能在自有服务器跑同一套代码(useplunk.com、GitHub)。
- 活动、workflows、分群与统一联系人列表与事务发送同为一等产品需求(见其官网与文档所述模型)。
- 运维团队已拥有 Docker、Postgres、Redis、Minio、SES 与子域名 TLS——且运维负担可接受,换取数据驻留或定制(Self-hosting)。
- 你明确想要 Plunk 宣传的按封计费云经济或无限联系人存储——数字只从 useplunk.com 引用,架构前请重读该页。
- 你想把 Plunk 当作只讲 SMTP 的工具前面的 SMTP 中继(GitHub 功能列表)。
若你真正需要的是 Plunk 的开源平台 + 活动/workflow 面(或 SES 支撑的自托管),Rovela 不是正确的「整包替换」。当痛点是托管邮件基础设施时再选 Rovela:已验证域名的 POST /emails、Idempotency-Key、入站与域名邮箱,以及适合副作用与 agent 的长期 Free(Pricing)。
自托管 / 开源邮件给托管事务发送留下的空档
控制面运维 vs 扁平托管 POST
Plunk 作为可自托管平台的优势,是在你控制的基础设施上拥有控制台、API、活动与 workflows——典型是 Docker Compose + Postgres、Redis、Minio、ntfy,并用 AWS SES 做实际 SMTP 出口(Docker deployment)。这是真能力,也是真运维:密钥轮换、数据库备份、Redis 持久化、对象存储健康、SES 沙箱出站、SES 身份上的 IP/域名声誉、镜像升级,以及维持 api. / app. / www. / docs.(和可选 smtp.)子域名健康(Domain setup)。
应用自管的 OTP、密码重置链接与 agent 工具,往往想要另一种形状:在你的数据库生成机密,再把扁平 JSON 打到托管邮件 API——没有 Compose 文件、没有 SES IAM 用户、没有第二套控制面要打补丁。Rovela 的发送路径是一次调用——POST https://api.rovela.dev/emails——Bearer 鉴权(Quick Start、API: emails、HTTP email API)。需要时可用 Rovela templates 的 template: { id, variables },但发信并不强制。
Rovela 不宣称自己是 AGPL 的 Plunk fork、Docker Compose 即插即用替代,或活动/workflow 自动化套件。若这些表面是硬需求,请继续用 Plunk(云或自托管)承载。
Plunk 底下的 SES vs 无需 AWS 账户的投递
自托管 Plunk 的文档路径会把 AWS SES 访问密钥写进栈(Docker .env)。即便应用 UI 是 Plunk,你仍继承 SES 开户、身份验证与 AWS 侧投递工作。Rovela 对想离开 AWS 形栈的团队,提供不必为产品路径开 AWS 账户的托管发送 API(Amazon SES 替代、Pricing)。双跑完全可行:批量或平台邮件继续 SES/Plunk;应用事务热路径走 Rovela。
活动 / 联系人 CRM vs agent 能持有的密钥
Plunk 针对同一联系人列表上的事务 + 营销 + 自动化(useplunk.com)。只需要发邮件的 agent / worker 栈,往往更想要只能发送、不能改域名或模板的 sending_access 密钥(Authentication)。切勿把 sending_access(或任何 API key)打进浏览器包——从你的服务端调用 Rovela。
发送旁边的人类邮箱与入站
开源邮件平台是否把 support@yourdomain.com 做成人类能在 Outlook/Apple Mail 打开的邮箱,各不相同。Rovela 在同一组织内提供浏览器可访问的企业邮箱(webmail、SMTP),以及一等公民的入站路径(Receiving email)。Free 含 5 个邮箱;付费计划提高数量与存储(Pricing)。
工人重试时的幂等
Rovela 接受 Idempotency-Key 请求头(最长 256 字符);24 小时内的重试返回原响应而不再发一封(API: emails)。Plunk 公共发送 API 也文档化了可选 Idempotency-Key(语义含其文档中的 409 等)——若继续用 Plunk,请重读 Plunk sendEmail。迁移要点是:无论用谁,都要给队列驱动的 OTP 与收据加稳定 key,避免超时造出两个不一致验证码。
文档可核对地图:发送、鉴权、邮箱、入站
1. 一次发送:POST /emails
curl -X POST https://api.rovela.dev/emails \
-H "Authorization: Bearer re_your_sending_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: plunk-migrate-receipt-order_10422" \
-d '{
"from": "Acme <no-reply@yourdomain.com>",
"to": "alice@example.com",
"subject": "Your Acme receipt",
"html": "<p>Thanks. Order <b>A-10422</b> is confirmed.</p>",
"text": "Thanks. Order A-10422 is confirmed."
}'
- 响应:入队消息 id(
{"object":"email","id":"..."})。200表示已接受投递,不是「已进收件箱」。 - 可选模板路径:用
template: { id, variables }代替html/text(Templates guide、Templates API)。模板管理需要full_access(或控制台);生产发送端应使用sending_access。 - 批量:
POST /emails/batch最多 100 条;batch 上 拒绝template——带模板的邮件请逐封发(API: emails)。 - 字段名与 Plunk
/v1/send不同(bodyHTML vs Rovela 的html/text)——请刻意映射,不要原样粘贴 Plunk JSON。
2. 域名验证
添加域名,发布 SPF/DKIM/DMARC(以及所示 return-path),再验证(Quick Start、Domains)。未验证的 from 域名会得到 400,而不是静默丢弃。自定义 return-path(SPF 对齐)按 Pricing 在 Pro 与 Enterprise 提供。
3. 投递 Webhook
订阅 delivered/bounced/complained(及相关)事件;校验签名;按事件 id 去重(Webhooks、Security)。优先 Webhook 而非轮询。读取消息状态需要 full_access 或控制台会话;sending_access 只能发送。
4. 企业邮箱
Webmail 在 rovela.email;SMTP 主机 mx.rovela.dev,端口 465,用户名为完整地址,按设备密码(SMTP、webmail manual)。
5. 入站
在已验证域名上启用入站(full_access),发布 MX,订阅 email.received(Receiving email)。模式见:Inbound email API webhooks。
迁移清单(Plunk 口味)
- 保留 Plunk 承载活动、workflows、联系人 CRM 与自托管/开源需求——不要把 newsletter 自动化硬塞进只做邮件的托管 API。
- 创建 Rovela 组织,先用 Free 验证线上事务投递(signup)——长期免费档,无需绑卡(Pricing)。
- 验证生产发信域名(按提示配置 DKIM / SPF / DMARC / return-path)。若仍在 SES 上自托管 Plunk,请仔细规划 DNS,避免 Rovela 与 SES 的 SPF/DKIM 互相打架——常用做法是拆开发信子域名。
- 创建
sending_access密钥给应用服务器与 agents;域名、模板、入站管理继续用full_access(Authentication)。 - 按意图拆流量:活动 / workflows / 联系人中心自动化 → Plunk;仅邮件的 OTP / 重置 / 收据工人 →
POST https://api.rovela.dev/emails。 - 映射 JSON:Plunk
body(HTML)→ Rovelahtml并补text;Plunkfrom对象/字符串 → Rovela 已验证域名上的"Name <addr@domain>";每封可重试发送加Idempotency-Key。 - 把退信/投诉 Webhook 指到你的处理器;切事务流量前先验签。
- **可选:**出站稳定后再建邮箱并启用入站。
- **可选:**用
full_access把重复 HTML 做成 Rovela 模板,再按 id 发送(welcome from template)。 - 不要假设 Rovela 是 Plunk Cloud 或 Docker 的即插即用替代——API、许可、活动功能与 SES 接线都不同。热路径验证前请双跑。
搜这个关键词的大多数团队会在开源或活动/workflow 有价值的地方继续用 Plunk,只把(或只从)托管事务热路径迁到托管 HTTP 邮件 API。这种拆分很正常——不是任一产品的失败。
不编造数字的定价对照
| 需求 | Rovela Free(文档) | 说明 |
|---|---|---|
| 每月发送 | 100 封邮件 | 见 Pricing |
| 邮箱 | 5 | 同一免费计划 |
| 存储 | 1 GiB | 同一免费计划 |
| 银行卡 | 不需要 | 长期免费档 |
| API / Webhook / 入站 / 模板 | 包含 | 升级提高上限 |
付费 Rovela 计划(定价页上 Pro 从 $29/月 起、定制 Enterprise)提高邮件、域名、邮箱与存储上限;Pro/Enterprise 含自定义 return-path 以利 SPF 对齐(Pricing)。Plunk Cloud 与自托管成本模型(带品牌的免费档、按封云价、自托管时的 SES + 服务器费用)应只从 useplunk.com 与你自己的基础设施账单引用——不要在本文编造其数字。若继续自托管,请单独预算 SES + VPS。
Rovela 定价表也列出 broadcasts、contacts、segments 等随计划限额的能力;那与 Plunk 的开源活动/workflow 平台不是同一产品面。不要把 Rovela 营销成 Plunk 克隆。
本文不是什么
- 不是说「Plunk 投递不行」或「自托管永远错误」——自托管是为了控制力与开源许可的刻意取舍。
- 不是说 Rovela 能替换 Plunk 的 AGPL 代码库、Docker Compose 栈、活动、workflows、联系人 CRM 或 SES 出口。除非 Rovela 文档写明,这些都超出范围。
- 不是 Resend / SendGrid / Postmark / Mailgun / Brevo / SES / Mailtrap / SparkPost / Loops / Customer.io / Courier / Knock 的换皮;那些见上文兄弟文。SES 是许多 Plunk 自托管底下的相关基础设施——本文主关键词仍是 Plunk。
- 不编造 MCP 工具、中国境内 ESP 话题或未文档化的端点。截至撰写时没有可照抄的
/alternatives/plunk营销页。 - 不是 Rovela 自带的密码重置或 OTP 产品功能:令牌/验证码仍由你的应用拥有;Rovela 负责投递(password reset example、verification codes)。
下一步
- 若开源自托管、活动与 workflows 仍合适,继续把该表面放在 Plunk。
- 用 Quick Start + POST /emails 发一封真实事务邮件。
- 若人需要收件箱,加邮箱并打开 webmail。
- 若回复或
support@重要,启用 inbound。 - 鉴权邮件模式见:验证码 vs 链接、OTP / 魔法链接进垃圾箱、DKIM 配置。
一句话:搜 Plunk 替代,往往仍想用 Plunk 做开源或活动/workflow 平台——但应用自管的事务邮件需要托管、幂等的 POST /emails、按发送量计价的 Free/Pro,以及团队能打开的邮箱。Rovela 做的就是这块托管邮件基础设施。运维与产品自动化需要控制面的地方留下自托管;仅邮件热路径按上文文档迁移。