Public inboxes are for peeking.
CI needs a private fixture.

Mailinator invented the public inbox — any @mailinator.com address already exists, no signup, free since 2003. That's genuinely great for a quick manual check, and no one does it better. But a test suite waits on OTPs and reset links, and those are secrets in a mailbox anyone can read. Here's the honest breakdown.

private inboxes on every plan — including free
CHOOSE MAILFIXTURE IF
CHOOSE MAILINATOR IF

The numbers, side by side

Their prices below are annual billing from their live pricing page (monthly billing runs higher: Business is $99/mo month-to-month). Ours are just the price.
MAILFIXTUREMAILINATOR
Free plan 100 messages/mo in private inboxes, full API — commercial use OK Public shared inboxes (anyone can read; no attachments; hours of retention); Verified Pro adds 1 private domain at 60 reads/day
Entry paid plan $15/mo $79/mo (Business, billed annually)
Team members Unlimited, on every plan 5 seats on Business, 10 on Business Plus; more as an add-on
Custom inbox domains Included from $15/mo 1 on Business, 3 on Business Plus
OTP extraction Automatic on every message — ranked candidates, top one as otp.best No dedicated endpoint — fetch the message and parse it yourself
Link extraction Automatic, classified verify / reset / unsubscribe Per-message links endpoint — a flat, unclassified list
Waiting for a message Long-polling — the server holds the request until mail arrives Poll the inbox endpoint on an interval
Spam & auth checks on received mail Automatic: SpamAssassin score with rule breakdown, structured SPF/DKIM/DMARC verdicts Not offered — raw headers and SMTP logs are retrievable
MCP server for AI agents Remote, hosted — 34 tools including server-side wait loops First-party, via the CLI run locally — 2 read tools, no wait primitive
SMS testing US numbers included on paid plans, 100–2,000 texts/mo by plan Add-on: $50/mo per number, 500 messages/mo included
Message retention Deletes itself — 3–30 days by plan, by design Public: a few hours. Paid: kept until deleted, within 50–100MB FIFO storage
Message injection without SMTP No — mail arrives by real delivery only Yes — API endpoints inject messages directly into inboxes
Email load testing No Yes — a named feature, up to 500 emails/sec on Enterprise
Sends mail from its infrastructure Never — receive-only by design Never — receive-only, same posture
mailinator numbers from mailinator.com/v4/pricing.jsp (annual) + /monthly-pricing/, verified pro from mailinator.com/verified-pro-plan/, retention/attachments from their faq, sms from mailinator.com/sms-testing/, api surface from manybrain.github.io/m8rdocs, mcp from github.com/manybrain/mailinator-cli — checked jul 11, 2026. if they've changed, trust their pages over ours.

Read the table honestly

Several rows favor Mailinator, and we left them in. The public inbox is a genuinely great invention — for checking what an email looks like right now, nothing beats an address that already exists and needs no signup. Their enterprise tier receives mail at volumes we don't compete with, message injection lets you simulate delivery without sending anything real, and storage-based retention means a paid inbox keeps messages until you decide they're done. If any of those is the job, Mailinator is the right tool.

The rows that favor us are about what a CI suite actually does: create an inbox, trigger a flow, wait for a specific message, assert on its contents. On MailFixture that's one API call, one long-poll, and a typed field — the OTP arrives ranked, links arrive classified, and SPF/DKIM/DMARC verdicts plus a spam score ride along on every message without asking. On Mailinator you poll an inbox endpoint, fetch the message, and parse it yourself. Both work; one of them is your code to maintain.

Pricing shape matters as much as price. Mailinator counts seats (5 on Business) and gates private domains behind $79/mo; we count received messages and nothing else — whoever is debugging the flaky login spec has their own sign-in on every plan, including free. And one row is shared philosophy: neither product sends email. Their DNS records declare every "from Mailinator" address forged; our codebase contains no sending path at all. Receive-only is the right design for this job, and they got there first.

What migrating actually looks like

For private-domain suites the shape changes more than the concepts: instead of polling a fixed address and parsing what comes back, the test mints its own inbox and one long-poll returns the extracted OTP or classified link directly:

signup.spec.ts · Playwright
const mail = new MailFixture(); // reads MAILFIXTURE_API_KEY

const inbox = await mail.createInbox({ ttlSeconds: 900 });
await page.fill('#email', inbox.address);
await page.click('text=Send code');

const otp = await inbox.waitForOtp({ timeout: 30_000 }); // server-side long-poll
await page.fill('#otp', otp);

Fair questions

Why not just use public @mailinator.com addresses in tests?
Because a public inbox is public: anyone who guesses the address reads your mail, and the OTPs and reset links your suite waits on are secrets. Public messages also live only a few hours, attachments are stripped, and signup forms blocklist the domain aggressively. Mailinator's own paid product exists because of all four — private CI testing is what their Business plans and our entire product are for.
Is MailFixture a drop-in replacement for Mailinator?
For private-domain test suites, close: both are receive-only inbox APIs, so no sending features are lost either way. The mechanics differ — Mailinator addresses simply exist on a domain and you poll them; MailFixture inboxes are created per test via the API and a long-poll returns the extracted OTP or classified link directly. Migrating means swapping the fetch-and-parse for one waitForOtp call.
Is Mailinator's free tier better than MailFixture's?
They're different products. Mailinator's public tier is unbeatable for a quick manual check — no signup, the address already exists. But it isn't private, so it can't carry a CI suite. MailFixture's free tier is 100 private received messages a month with the full API, extraction, and long-polling — commercial use included, no card.
100 messages/mo free · private inboxes · no card
Start free Read the quickstart