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, the mock proves nothing about delivery, and the one bug that matters — the template that renders wrong in a real client — ships anyway. Reclario gives you a private catch-all domain for $49/mo per domain: every run invents its own addresses, mail arrives over real MX, and API keys plus webhooks let CI assert on what was actually 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 real mail, not on mocks.

No provisioning, ever

Every address on your domain works instantly. Generate one per run in code — no setup fixture, no teardown, no account creation step that flakes at 3am.

Real MX delivery

Mail is received at a real domain over real MX records — closer to production truth than intercepting SMTP in-process. If routing or headers are wrong, you find out here.

Assert on anything

Subject, body, headers, links, attachments, timestamps. Pull the message your app actually sent and make real assertions instead of trusting a send() return value.

Faithful rendering

See the message the way a user does — images, styling, layout — in a sandboxed renderer. The check automation cannot do, done in five seconds by a human eye.

API keys and webhooks

Read messages from your suite, or get pushed a webhook the moment mail lands — so tests wait on delivery events rather than arbitrary sleeps.

Private by default

Staging data, reset links, and customer-shaped fixtures never sit in a public inbox. Your domain is unlisted and unsearchable — only invited members can read it.

How it works

Three steps to email assertions in CI.

The whole integration is: pick an address, send to it, read it back. There is nothing to provision and nothing to clean up.

1

Claim a domain

Your team's private catch-all domain — $49/mo per domain, unlimited addresses, unlimited inboxes.

yourteam.reclar.io
2

Mint an address per run

Tag it with the run and the case so parallel suites never read each other's mail. It works the moment you send.

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

Read it back and assert

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

expect(msg.subject)

Parallel runs stop colliding.

The reason email tests are flaky is almost never email — it is that four workers are all reading qa@company.com and grabbing each other's messages. With unlimited addresses the fix is free: derive the address from the run ID and the test name, and every worker gets an inbox nobody else can touch. Suites that used to run serially because of email can run wide.

Real artifacts for real bug reports.

When a test fails you get the actual evidence: the rendered message, the full headers, every attachment, and a raw .eml download to attach to the ticket. Testing calendar flows too? Invites sent to a tagged address answer themselves — see calendar invite testing. Testing signup, verification, and lifecycle mail? That is onboarding and transactional email testing.

FAQ

QA email testing, answered.

Can I use it in CI?
Yes. API keys let your suite read messages on demand, and webhooks push a notification the moment mail is delivered — so a test can wait on a real email instead of sleeping and hoping. Nothing about the flow requires a browser or a human.
Do I need to create inboxes ahead of time?
No. Your domain is catch-all: qa+run-8842@yourteam.reclar.io exists the instant something sends to it. There is no provisioning step to fail, no setup fixture to maintain, and no DNS work on your side.
Can parallel runs collide?
Not if you tag the address with the run. Addresses are unlimited, so give every run, worker, and test case its own — qa+run-8842-checkout@yourteam.reclar.io — and two suites executing at once never read each other’s mail. This is the usual failure mode of a handful of shared test accounts, and it disappears.
Can I download the raw message (.eml)?
Yes. Every message can be downloaded as a raw .eml, with full headers and attachments intact — so you can 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 intercepts mail at the SMTP layer before it leaves your app. Reclario receives on real MX at a real domain, so what you assert on is what actually got delivered — routing, headers, and all. The two solve different problems; see Reclario vs Mailtrap for the full comparison.

Give every test run its own inbox.

Claim a private catch-all domain for $49/mo per domain — or wire up your first assertion against the free public sandbox at public.reclar.io (work email required, no credit card). Weighing alternatives? See email testing tools compared.

Start free  See pricing