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.
Two entry points
Section titled “Two entry points”| 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.
Inspect, then decide
Section titled “Inspect, then decide”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
SANDBOXbadge — 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.
The guarantee, precisely
Section titled “The guarantee, precisely”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.
Cookie consent
We may run ads on Google and Reddit. If we do, knowing whether they work needs your OK for one cookie each from them, used only to tie a signup back to the ad that brought it. Analytics here is cookieless either way, and declining changes nothing else.
Change your mind any time with "Cookie choices" in the footer. Details in the privacy policy.