Skip to content

Sandbox

The sandbox is a production-shaped dead end: your app sends exactly as it would in production, Mailway records everything — SMTP transcript, parsed message, timeline, preview — and no provider is ever dialed automatically. Point staging or CI at it and it cannot email a customer.

Host Use it from Credentials
smtp.mailway.dev Anything that speaks SMTP Your normal project SMTP credential — same config, different hostname.
api.mailway.dev The HTTP API A test key (mw_test_…). Live keys are rejected here, test keys are rejected in production.

Captured mail lands in the console like any other mail, wearing a SANDBOX badge and a captured state. The payload shape, the timeline, and the console treatment are identical to production — that’s the point: what you inspect is what production would have sent.

Open the capture in the console and you get the full production surface: rendered preview, text and headers, the raw message, the SMTP transcript, size and fingerprint. From there a capture has exactly three futures:

  • It stays put. The default. Nothing leaves Mailway; retention eventually cleans it up like any other mail.
  • Reject — the explicit discard. Terminal, same as rejecting any held mail.
  • Release & send — the capture turns out to be the real thing, and you deliver it. Deliberately not a one-click action; see below.

Release & send — the way out, on purpose

Section titled “Release & send — the way out, on purpose”

The typical story: a developer builds a one-off mail — say, a winner notification with one recipient — and sends it to the sandbox for the team to review. Approval lands a day later. Without release, the only path was to re-run the send against production and hope nothing changed since the review. With release, the message the team reviewed is the one that goes out, byte-for-byte apart from the automatic exceptions.

Releasing a capture live:

  • asks for confirmation in the console first — it shows the real recipient list, the provider route, and how old the capture is, and makes you acknowledge that this really delivers (for more than five recipients, you type the recipient count);
  • sends through your project’s real providers, with your suppression list enforced exactly as in production;
  • is one-way and recorded — who released what, when, to how many recipients, in the team’s security history (shown on the console’s Audit log page, Business and up);
  • keeps the SANDBOX badge — provenance is data, and the mail’s history shows it was captured first and released later;
  • requires a pristine capture: parsed, never rejected, never released before, and never sent by any other path.

Mail that arrives through a sandbox host never leaves Mailway on its own. No background job, no retry, no resume of a paused project will hand a capture to a provider. Delivery happens only when someone with permission to release and reject mail (admins, developers, and members; not the Finance role) confirms it in the console: explicitly, per mail, and recorded.

So staging can’t email your customers until a person decides that one specific mail should go.