MailSlurp 替代方案:当按收件箱计费开始算不过账(2026)
大多数搜「MailSlurp 替代方案」的人,要解决的并不是能力问题。MailSlurp 把难的那部分做对了:真实收信邮箱、API 优先的设计、覆盖广泛的 SDK、每个收件箱彼此隔离。团队离开它,通常不是因为它不好用。
而是因为算账。
利益相关声明:MoeMail 是我们自己的服务,本文也会直说哪些情况下 MailSlurp 才是更划算的选择。下面的 MailSlurp 方案数据读取自 mailslurp.com/pricing,时间为 2026 年 8 月 30 日——价格会变,做决定前请自己核对。
结构性矛盾:正确的做法,正是被计费的那个
每一篇讲邮件测试的指南——包括本站的——都会告诉你同一件事:**为每个测试开一个全新的收件箱,绝不要整个套件共用一个。**共用正是邮件测试变得不稳定的根源:两个测试并行跑,其中一个读到另一个的邮件,于是你得到一个只在并发下才复现的失败。
而 MailSlurp 计量的就是收件箱创建量。于是,正确的做法恰好落在你被计费的那根轴上,成本随着你最想增加的东西同步上涨:测试数量 × CI 频率。
给它填上真实数字。一个有 40 个涉及邮件的测试的套件,每次推送都跑、外加每晚一次——算一天三次:
40 个收件箱 × 3 次运行 × 30 天 = 每月 3,600 次收件箱创建
对照 MailSlurp 公布的方案:
| 方案 | 每月收件箱创建数 | 价格 |
|---|---|---|
| Free | 100 | $0 |
| Pro | 1,000,超出后 $3.00 / 1,000 | $49.99/月 |
| Team | 5,000,超出后按用量计费 | $129.99/月 |
这个 40 个测试的套件,第一天就会把免费额度用完。它是 Pro 额度的 3.6 倍,所以要么 Pro 加超额费,要么上 Team。而且注意让账单变大的是什么:不是数据量,也不是席位,而是「多写测试」和「更频繁地跑 CI」——这两件事恰恰都是你应该做的。
免费层还把收信量限制在每月 500 封、同时最多保留 50 个收件箱。这是一个确实好用的试用额度,但不是一个能用来跑 CI 的额度。
什么情况下你应该继续用 MailSlurp
这篇文章不是在论证 MailSlurp 不好。以下情况请留下:
- **你需要它周边的那套产品能力。**渲染预览、投放位置测试、附件处理、邮箱验证以及 AI 相关功能都在 Pro 及以上。如果你的团队在用这些,那么一个免费的收件箱 API 替代掉的只是表格里的一列,不是整个产品。
- **你需要短信或手机 OTP。**目前我们没有找到任何免费替代方案覆盖这一块。
- **你需要 SOC 2、SAML/OIDC、RBAC 或指定区域托管。**那是 Enterprise 的范畴,一份签署的 MSA 没有开源替代品。
- **你的量确实很小。**每月不到 100 次收件箱创建,免费层就是免费的,换过来只会花掉工程时间却省不下钱。
只有当钱是真金白银时,为省钱而迁移才划算。对一个一周只跑两次的套件来说,它不是。
替代方案到底有哪些
这个领域的划分方式和 Mailosaur 那篇是一样的,完整梳理在那篇里。这里给个短版,因为它能直接淘汰掉大多数「MailSlurp 替代方案」清单里的条目:
真实收信邮箱能收下互联网上任何地方发来的邮件。只有这一类能替代 MailSlurp。MoeMail、Mailinator、Mailosaur 属于这一类。
SMTP 捕获器——Mailpit、MailHog、MailCatcher、MailDev、Mailtrap 的 Email Testing 沙箱——捕获的是你的应用发出去的邮件。它们收不到第三方发来的验证邮件,因为互联网上根本没有路由能到达它们。但它们照样会出现在每一份替代方案清单上。
如果你在 MailSlurp 上的用量有一半是在断言自家的外发模板,把这一半挪到 Mailpit。它可以作为 CI 的 service container 跑起来,不需要凭证也不需要外网,而且完全不再消耗计量配额。光是这一步,往往就能把一个套件重新压回免费额度以内。
| 真实收信 | 免费额度够不够 CI 用 | 可自托管 | Webhook | |
|---|---|---|---|---|
| MoeMail | 是 | 是,不计量 | 是 | 是 |
| MailSlurp | 是 | 每月 100 个收件箱 | 否 | 是 |
| Mailosaur | 是 | 仅试用 | 否 | 是 |
| Mailinator | 是 | 仅公开收件箱 | 否 | 付费档 |
| Mailpit | 否——本地 SMTP | 不适用,自行运行 | 是 | 否 |
Mailinator 的免费收件箱是任何人都能读的,用来接一次性注册信没问题,涉及任何敏感内容则直接出局。
从 MailSlurp 迁移
你的测试形态不会变。MailSlurp 的流程是「创建收件箱 → 驱动流程 → 等待邮件 → 提取」,所有人的都是这样。变的只是传输层:
const API = 'https://moemail.app/api'
const H = { 'X-API-Key': process.env.MAIL_KEY, 'Content-Type': 'application/json' }
// 原来是:const inbox = await mailslurp.createInbox()
export async function createInbox() {
const res = await fetch(`${API}/emails/generate`, {
method: 'POST',
headers: H,
body: JSON.stringify({ expiryTime: 3_600_000, domain: 'moemail.app' }),
})
if (!res.ok) throw new Error(`create inbox failed: ${res.status}`)
return res.json() // { id, email }
}
// 原来是:await mailslurp.waitForLatestEmail(inbox.id, 30000)
export async function waitForMessage(inboxId, timeoutMs = 30_000) {
const deadline = Date.now() + timeoutMs
while (Date.now() < deadline) {
const res = await fetch(`${API}/emails/${inboxId}`, { headers: H })
const { messages } = await res.json()
if (messages?.length) return messages[0]
await new Promise(r => setTimeout(r, 1500))
}
throw new Error(`no email arrived within ${timeoutMs}ms`)
}
移植断言时有三个字段名要注意:
- MailSlurp 的
inbox.emailAddress,这里是inbox.email。 - MailSlurp 的
email.body,这里是msg.content(纯文本)或msg.html。 - 时间戳是
received_at,采用 REST 列表返回的 snake_case 写法。
你的提取正则与传输层无关,可以原样带过来。
想要比轮询更低的延迟,就注册一个入站 Webhook,在投递时直接结束等待。各框架的对应写法:Playwright、Cypress、Selenium、Node、Python、GitHub Actions。
常见问题
**有没有免费、又带真实 API 的 MailSlurp 替代品?**有——MoeMail 免费、开源、可自托管,带 OpenAPI 和 Webhook。Mailinator 的免费层确实是真实收信,但内容任何人可读。
**我能自己托管一套类似 MailSlurp 的东西吗?**MailSlurp 本身只提供托管服务。MoeMail 可以自托管在 Cloudflare 上,这同时也彻底消除了配额问题,并让你用上自己的域名。
**MoeMail 有哪些 MailSlurp 有而它没有的?**没有短信/手机 OTP,没有渲染预览和投放位置测试,没有附件处理与邮箱验证类功能,开箱即用的 SDK 也少得多——HTTP 调用要你自己写,也就是上面那二十行。如果这些对你重要,MailSlurp 值它的价钱。
**用 Mailpit 行不行?**只对你自己应用发出的邮件有效,它收不到外部来信。但把套件拆开——外发断言交给 Mailpit,只有收信断言才去调托管 API——通常是可选项里最省钱的单一改动。
**MailSlurp 和 Mailosaur 哪个更值得留?**强项不同:MailSlurp 强在大规模下的 API 使用体验,Mailosaur 强在成熟度加短信。如果你的顾虑是价格,两个都解决不了;那部分的分析见 Mailosaur 对比。
我们的看法
MailSlurp 是个好产品,但它的计费模型惩罚的恰恰是它自己文档所推荐的那种测试实践。如果你的量小,就待在免费层。如果你需要渲染、短信或合规能力,就付钱买——为绕开一个缺失的功能去重新做工程,花的比授权费更多。
如果你想要的是「按 CI 的频率,每个测试一个收件箱,而且不用盯着计数器」,那就是一个免费、可自托管的真实收信 API 存在的理由。
创建一个邮箱,或读一读 OpenAPI 文档。第一次接触这套模式?先看邮件测试指南。
资料来源:mailslurp.com/pricing,读取于 2026 年 8 月 30 日;其余厂商为各自官网的定价与文档页面。