Mailway documentation
Mailway keeps a byte-for-byte copy of every email your app sends: an archive that works as your app’s Sent folder. Each mail’s timeline in the console shows what happened to it, its delivery history. Mailway sends through your own provider accounts (for example Amazon SES, SendGrid, Mailgun, or Postmark) and fails over between them when one refuses. Your apps talk to Mailway over SMTP or the HTTP API.
Bring your own keys. Mailway is not an email provider — it sits between your app and the provider you already have. You keep your provider relationship, your reputation, and your pricing; Mailway adds the archive, failover and routing, the delivery history, and proof of what was sent.
Get started
Section titled “Get started”How a send flows
Section titled “How a send flows”- Your app hands Mailway a message — over SMTP or
POST /v1/send. - Mailway receives it, stores it, runs your rules, and picks a provider from the ones you attached to the project.
- If a provider refuses the send (a rejected key, exhausted credits, a throttle), Mailway fails over to the next attached provider, five seconds later when it’s one the mail hasn’t tried, so the send survives a provider outage. Failover needs at least two providers on the project (Pro and up).
- Delivery confirmations, bounces, and complaints stream back in from the provider — normalized into one delivery history whichever provider reported them — onto your webhooks, and into the project’s suppression list, where a bounce learned through one provider protects sends through every provider in that project.
- The full message — headers, body, and attachments — is archived byte-for-byte, so the console can show you exactly what was sent, and prove it.
Two environments
Section titled “Two environments”| Host | Purpose |
|---|---|
smtp.mailway.net / api.mailway.net |
Production — messages relay to your providers. Live API keys (mw_live_…) work only here. |
smtp.mailway.dev / api.mailway.dev |
Sandbox — mail is captured: stored and visible in the console, but never forwarded automatically. Delivery only happens if you release a capture from the console. Test keys (mw_test_…) for the HTTP API. |
The payload shape is identical in both environments, so switching to production is a hostname and key change — nothing else.
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.