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: 'ci@qa.acme.mailfork.dev',
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