QA & CI testing

A catch-all test domain your suite can drive.

Most QA teams test email with three shared Gmail accounts and a mock. The accounts collide between runs, and the mock can't tell you anything about delivery, so the bug that matters most (a template that renders wrong in a real client) ships anyway. Reclario gives you a private catch-all domain for $49/mo per domain. Each run makes up its own addresses, mail arrives over real MX, and API keys and webhooks let CI assert on the message that was delivered.

qa+run-8842@yourteam.reclar.io qa+run-8842-checkout@yourteam.reclar.io signup+worker3@yourteam.reclar.io reset+expired@yourteam.reclar.io
Why QA teams use it

Assert on the mail that was delivered.

Nothing to provision

Any address on your domain receives mail the first time something sends to it. Generate one per run in code. There's no account-creation fixture left to flake at 3am, and nothing to tear down.

Real MX delivery

Mail is received at a real domain over real MX records, which is closer to production than intercepting SMTP in-process. Wrong routing or bad headers show up here.

Assert on anything

Subject, body, headers, links, attachments, timestamps. A send() that returned OK only tells you the mail left; pull the message your app sent and check it.

Rendered for a human check

Open the message in a sandboxed renderer and see the images, styling and layout a user would. Automation can't judge how it looks, and a person can in about five seconds.

API keys and webhooks

Read messages from your suite, or have a webhook fire when mail lands and wait on that event instead of an arbitrary sleep.

Private by default

Reset links, staging data and customer-shaped fixtures stay out of public inboxes. Only members you invite can read your domain, and it isn't listed or searchable.

How it works

What the integration looks like.

Pick an address, have your app send to it, and read it back. There's nothing to create beforehand and nothing to clean up after.

1

Claim a domain

One private catch-all domain for the team. $49/mo per domain covers unlimited addresses and unlimited inboxes.

yourteam.reclar.io
2

Mint an address per run

Put the run and the test case in the tag so parallel suites never read each other's mail. The address works on the first send.

qa+run-8842@yourteam.reclar.io
3

Read it back and assert

Fetch the message over the API or wait for the webhook, then assert on subject, body, headers and attachments.

expect(msg.subject)

Parallel runs stop colliding.

Flaky email tests are almost never about email. Usually four workers are all reading qa@company.com and picking up each other's messages. With unlimited addresses the fix costs nothing: build the address from the run ID and the test name, and each worker reads an inbox no other worker touches. Suites that ran serially because of email can run in parallel.

Evidence you can attach to the ticket.

When a test fails you have the rendered message, the full headers, every attachment and a raw .eml download for the bug report. For scheduling flows, Reclario replies to calendar invites sent to a tagged address; see calendar invite testing. Signup, verification and lifecycle mail are covered in onboarding and transactional email testing. If you're walking a live product as several people (owner, invitee, customer) rather than asserting in CI, read about agent and founder product walks.

FAQ

QA and CI questions

Can I use it in CI?
Yes. API keys let your suite read messages when it needs them, and a webhook fires as soon as mail is delivered, so a test can wait for the real email instead of sleeping and hoping. The flow doesn't need a browser or a person.
Do I need to create inboxes ahead of time?
No. Your domain is catch-all, so qa+run-8842@yourteam.reclar.io receives mail the first time something sends to it. Your fixtures lose the provisioning step (and its failures), and there is no DNS work on your side.
Can parallel runs collide?
Not if the run is in the tag. Addresses are unlimited, so each run, worker and test case can have its own, like qa+run-8842-checkout@yourteam.reclar.io. Two suites running at once won't read each other's mail. Collisions are the usual way a handful of shared test accounts fails, and per-run addresses remove them.
Can I download the raw message (.eml)?
Yes. Any message downloads as a raw .eml with full headers and attachments intact. Diff it, attach it to a bug report, or feed it to a parser in your own tests.
How is this different from an outbound sandbox?
An outbound sandbox catches mail at the SMTP layer before it leaves your app. Reclario receives it over real MX at a real domain, so you assert on what was delivered, routing and headers included. The two solve different problems; Reclario vs Mailtrap has the full comparison.

Give every test run its own inbox.

API keys come with a private catch-all domain: $49/mo per domain after a 14-day free trial (card required). To watch mail land before you wire anything up, the free public sandbox at public.reclar.io takes a work email and no card. To see how other tools compare, read email testing tools compared.

Start free  See pricing