back to blog
Best Practices

disposable inboxes for qa teams

April 10, 2026 6 min readbest practices
Layered translucent inbox cards floating on a soft background
on this page

// share the inbox, not the screenshot

share the inbox, not the screenshot

When two testers debug the same flow, they both need to see the same message. The usual workaround — one person screenshots and pastes into Slack — is slow and loses the rendered HTML.

A disposable inbox has its own URL. Drop the link into your bug ticket and anyone on the team can open it for as long as the inbox is alive.

// one inbox per environment

one inbox per environment

  • staging: qa-stg-checkout@ephemail.io
  • preview: qa-pr-{pr-number}@ephemail.io
  • local: a fresh throwaway every run

Predictable addresses + auto-expiring data means tests are reproducible without leaving behind a years-long archive.

// in CI: wait-for-message

in CI: wait-for-message

The API exposes a long-poll endpoint so end-to-end tests don't have to guess at delivery latency.

const msg = await ephemail.waitForMessage({
  address: "qa-stg-checkout@ephemail.io",
  subjectContains: "verify your account",
  timeoutMs: 30_000,
});

await page.goto(extractFirstLink(msg.body));
Amine Gharby
// written by
Amine Gharby
Founder, ephemail

Amine builds ephemail and writes about email plumbing, developer tooling, and the small annoyances of testing software.

// try it

spin up a throwaway inbox

no signup. instant. gone in ten minutes.

open inbox
// related posts

keep reading