Real SMTP infrastructure — not mocked

Email testing
that actually works

Disposable inboxes, programmatic OTP extraction, and ephemeral aliases — all on real SMTP infrastructure. Built for QA engineers who need email to behave like email.

bot+signup@qa.acme.mailfork.dev

Real SMTP addresses

Every inbox is a live MX record. Mail arrives as it would in production — no simulation.

OTP extraction API

One call returns the OTP code. Works with Playwright, Selenium, and any HTTP client.

Ephemeral aliases

Create a tagged address per test run. It auto-expires and cleans up. CI-friendly by design.

Org namespace hierarchy

Teams and personal inboxes under one org. No DNS changes when you add a team.

SDK-first. CLI-optional.

The TypeScript SDK handles polling, OTP extraction, and alias lifecycle — so your tests stay focused on what they're testing.

  • Typed SDK for TypeScript and JavaScript
  • Built-in polling with configurable timeout
  • Alias auto-expiry with delete or keep semantics
  • REST API for any language
otp-test.ts
// create a one-time alias for this test run
const alias = await mf.inboxes.createAlias({
  inbox: '[email protected]',
  ttlHours: 1,
  onExpire: 'delete',
});

// trigger the signup email in your app
await page.goto(`/signup?email=${alias.address}`);

// extract the OTP — no regex needed
const otp = await mf.waitForOtp(alias.address);
await page.fill('#otp-input', otp);

How MailFork compares

Feature MailFork Mailosaur MailSlurp
Org namespace hierarchy
Ephemeral alias system
Built-in OTP extraction Partial
Real SMTP (not mocked)
SDK for TypeScript
Native IMAP (Tosca) Planned

Start testing email today

Free tier includes 3 inboxes and 100 stored emails. No credit card required.

Create free account