Mailosaur Alternative for Email Testing

Mailosaur and smtp.dev side by side for email tests: plans, quotas, custom domains, and IMAP. When SMS keeps you on Mailosaur, and how to port your tests.

Mailosaur is built for QA automation across email and SMS. A test waits for a message, pulls out a link or a code, and carries on. smtp.dev covers the email half of that, including one-time codes sent by email. If your suite also reads codes from SMS or an authenticator app, stay on Mailosaur.

For email-only suites, the address model is the difference to understand first. A Mailosaur inbox has its own domain, like abc123.mailosaur.net, and any address on it works without setup. Here, addresses live on your own domain. Each one is an account you create, or a plus alias of one, like qa+anything@test.example.com, on any plan. A catch-all on Pro or Max accepts every address.

At a Glance

Mailosaursmtp.dev
Price per monthPersonal from $20, Core from $50, billed yearly. Enterprise is quoted$0, $7, or $20
FreeA 14-day trialLite, with no time limit
Inbound email15,000 a month and 500 a day on Personal. 75,000 and 2,500 on CoreNo message quota
AddressesAny address on the inbox's mailosaur.net domainAccounts on your domain and their plus aliases. Any address with a catch-all on Pro and Max
Your own domainEnterpriseEvery plan
Reading mailAPI and client libraries on every plan. IMAP and POP3 on Core and EnterpriseREST API, SSE, IMAP, and POP3 on every plan
SMS and authenticator codesCore add-on, from $37.50 a monthNo. Codes sent by email work like any other message
Client previewsCore add-on, from $25 a monthNo. Open the account in a mail client over IMAP
Users1 on Personal, up to 3. 5 seats on Core. SSO and SCIM on EnterpriseSingle user

Stay on Mailosaur When

  • A test reads codes from SMS or an authenticator app. smtp.dev only receives email.
  • You need client previews or accessibility checks. Both are on Core. The audit here checks sender configuration, HTML structure, links, and images, but doesn't render the message in other clients.
  • Any local part should work with no setup, on the cheapest plan. That's how a Mailosaur inbox behaves. Lite covers qa+anything@ with plus aliases, but arbitrary addresses take a catch-all, which starts on Pro.
  • Several people need logins, SSO, or SCIM.
  • Your tests use Mailosaur's client libraries and pass. There's nothing to gain from rewriting them.

Reasons to Switch

  • Your own domain without Enterprise. Mailosaur's documentation lists receiving on a custom domain as Enterprise only. Every plan here takes a domain, and a subdomain works while the apex keeps its production MX.
  • Signup forms that block disposable domains. mailosaur.net is on the open-source disposable-email-domains blocklist. If your app checks addresses against it, a test address can be rejected before any email goes out. Your own domain isn't on the list.
  • IMAP and POP3 on the cheapest plan. Personal doesn't include them. Every account here is an IMAP and POP3 mailbox, Lite included.
  • Large runs. Personal accepts 500 emails a day, so a nightly suite that sends 600 runs out partway through. Plans here don't count messages.
  • A free plan that stays free. Lite is $0 with no trial clock: 1 domain, 50 accounts, messages kept 7 days.

Porting a Test

If the app already sends through your provider, change the test recipient from user@abc123.mailosaur.net to an address on your test domain. The MX record routes it here.

If the app submits mail to Mailosaur over SMTP, point it at send.smtp.dev, port 587 with STARTTLS, and log in with the sending account's address and password. send.smtp.dev delivers only to accounts in your sandbox, so every recipient has to be an account you created or a plus alias of one, or any address on your domain once you have a catch-all.

The Mailosaur inbox ID in your tests becomes two IDs here: the account, and its mailbox whose path is INBOX. Waiting for a message becomes a poll of that mailbox, newest first:

curl "https://api.smtp.dev/accounts/{accountId}/mailboxes/{mailboxId}/messages" \
  -H "X-API-KEY: $SMTP_DEV_API_KEY"

Mailosaur's libraries wrap that wait for you. Here it's a few lines: findMessage with expect.poll in the Playwright guide, the waitForEmail task in the Cypress guide, or SSE if you'd rather not poll.

Mailosaur's plans, limits, and add-on prices are from its pricing page. Custom domains and IMAP availability are from its documentation. The blocklist is disposable-email-domains on GitHub. All checked November 9, 2026.