Skip to content

Mailway documentation

Mailway is a smart gateway between your applications and your email providers. Your apps talk to Mailway over SMTP or the HTTP API; Mailway routes each message through your own provider accounts (Amazon SES, SendGrid, Mailgun, Postmark, …), fails over automatically when a provider misbehaves, and keeps a byte-for-byte archive of everything it relays.

Bring your own keys. Mailway is not an email provider — it sits above the one you already have. You keep your provider relationship, your reputation, and your pricing; Mailway adds routing, failover, observability, and an archive that can prove what was sent.

  1. Your app hands Mailway a message — over SMTP or POST /v1/send.
  2. Mailway accepts it, stores it, runs your rules, and picks a provider from the ones you attached to the project.
  3. If the provider rejects or times out, Mailway fails over to the next attached provider — the send survives a provider outage.
  4. 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 all of them.
  5. The full message — headers, body, attachments — is archived verbatim, so the console can show you exactly what left — and prove it.
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 — messages are accepted, stored, and visible in the console, but never forwarded automatically. Delivery only happens if you explicitly release a capture from the console. Test keys (mw_test_…) on the API door.

The payload shape is identical in both environments, so switching to production is a hostname and key change — nothing else.