Product

Everything your email touches, in one place.

Mailway sits between your app and the providers you already pay for — routing, failover, a searchable archive, and proof of delivery, without changing how you send.

An email gateway sits between your application and its email providers: your app hands a message to one endpoint, and the gateway decides which provider carries it, retries when one fails, and keeps the record. Mailway is that layer for transactional email — a config change to adopt, standard SMTP or HTTP in, your own provider accounts out.

The four pillars below are the product: a byte-for-byte archive, automatic failover, a per-message timeline, and signed proof of delivery. Everything is BYOK — Mailway routes and records, your providers deliver, and delivery is billed by them at their prices.

How it works

The whole migration
is a config change.

the migration — mailer config
const transporter = nodemailer.createTransport({
- host: "smtp.sendgrid.net",
+ host: "smtp.mailway.net",
port: 587,
auth: { user, pass },
});
01connect

Point your app at Mailway

Swap host, port, and credentials in the mailer you already use — Nodemailer, Laravel, Rails, smtplib, whatever ships your mail today. 7 SMTP ports open, so it works even where your cloud blocks the usual ones. Prefer HTTP? There's a REST API.

02configure

Paste in the keys you already have

Add your provider API keys, assign them to projects, pick failover, free-first, round-robin, or random per project. All from the dashboard — no deploy, no DNS archaeology.

03relax

Mailway takes it from here

Routing, retries, suppression, logging, archive. The next time someone asks about an email, you look it up instead of guessing — and switching providers never touches your code again.

Join the waitlistprivate beta · invites go out one at a time
01 · Archive

Your app doesn't have a sent folder.
Mailway gives it one.

Every mail client keeps what you send. Your app — which sends more consequential email than you do — keeps nothing: receipts, reset links, and contracts vanish the instant SMTP takes them. Mailway archives each message exactly as sent and makes it searchable like a mailbox. So when finance asks about an invoice from last March, you open the email itself — not a log line that mentions it.

storedthe raw message, byte for byte — headers, attachments, original DKIM signature intact
foundfull-text plus operators — state:delivered, before:2024-06, rescued:
openedrendered · plain text · headers · raw source · attachments — years later, unchanged
console.mailway.net — Mails
invoice state:delivered
Invoice #20412026-04-10✓ delivered
Invoice #1663 — March services2024-03-04✓ delivered
Invoice #1408 — retainer, April2023-04-18✓ delivered
Invoice #1129 — Q2 hosting2022-06-30✓ delivered
Invoice #0847 — onboarding fee2021-09-14✓ delivered
5 of 214 matcheson the record since 2020
02 · Routing & Failover

Providers fail.
Your email shouldn't.

Your app hands off once, gets 250 OK, and moves on. Mailway reads whatever the provider says back — a timeout, a rate limit, an empty credit balance — and reroutes in milliseconds. Here's a genuinely bad day, handled without a single page going out:

Your Appsmtp.mailway.netSMTPROUTES · LOGS · FAILS OVERAmazon SES421 timeoutSendGrid401 credits exhaustedMailgun250 accepted · 97ms

Four routing strategies

reliability
Failover

Primary provider first. On timeout, rate limit, or outage, the next one takes over automatically — with exponential backoff.

cost
Free-first

Spend every provider's free tier before a single paid send — paid rates only kick in once the free capacity is gone. Exhausted providers stay available for failover.

balance
Round-robin

Distribute volume evenly across providers. Balance spend, spread sender reputation, and stay under per-provider rate limits.

simplicity
Random

A coin flip per message. For when you want the volume spread and nothing else to think about.

Not all errors are equal

provider saysclassmailway does
550 user not foundhard bouncestop · suppress · log
401 credits exhaustedbilling / quotafailover · flag the account
429 rate limitedsoft bouncefailover to next provider
421 timeoutconnectionfailover with backoff

Hard bounces are never retried — the address goes straight to your suppression list, where it stops hurting your sender reputation. Everything recoverable fails over. Nothing gets retried into a blocklist.

03 · Observability

250 OK is not
the whole story

Most providers stop at "accepted" and wish you luck. Mailway follows the message the rest of the way — every attempt, every provider response, every error code, down to the raw SMTP session. So when support asks "did that email go out?", you answer with a timeline, not a shrug.

And because every provider you use reports back into the same gateway, outcomes land in one normalized delivery history — an SES bounce and a Mailgun bounce read the same, side by side. No single provider can see across your whole sending; the gateway in front of them can.

  • Search by subject, sender, recipient, or state
  • Real outcomes — delivered, bounced, complained — in one vocabulary across providers
  • A hard bounce learned on one provider blocks the address on all of them
  • The raw SMTP session, kept for every connection
  • Per-project analytics and 30-day volume
console.mailway.net
invoice to:customer@
Invoice #2041
customer@gmail.com
delivered2m
Password reset
anna@outlook.com
delivered9m
Order confirmation
old-address@fake.io
bounced14m
Weekly digest
team@company.eu
delivered22m
Shipping update
leo@proton.me
queued31m
Delivery timeline — Invoice #2041
accepted via SMTP :587 09:41:02
SES 421 timeout failover: SendGrid
delivered · 142ms · DKIM sealed · archived
Mailway · Email Notary
Certificate
of Delivery
message m.01J9ZK3VQ7
content sha-256 9f2c…a41e ✓ match
dkim d=yourapp.com ✓ verified
accepted SendGrid · 2026-04-10T09:41:02Z
delivered 2026-04-10T09:41:03Z
signature ed25519:Kx4v…9dQ=
verify mailway.to/m/f3XK…
04 · Notary

"I never got that email."
Here's the receipt.

Every message is archived with its raw MIME and original DKIM signature, and can be turned into an Ed25519-signed proof-of-delivery certificate, countersigned by an independent time authority so it can't be back-dated. The signature verifies in anyone's browser — no need to trust our database, or us. Share the rendered email itself with a privatemailway.to link, and settle the dispute instead of having it.

Retention on paid plans
SendGrid paid
3 days
Mailgun Foundation
5 days
Postmark (best-in-class)
45 days
Mailway
90d → years

90 days on Pro, 6 months on Team, 1 year on Business, unlimited on Enterprise — with 3-to-7-year add-ons for SOX, HIPAA, and FINRA record-keeping. All of it EU-hosted, all of it searchable.

Your mailer config has
one line to change

Mailway is in private beta — we onboard teams one at a time. Leave your email and we'll send your invite when it's your turn.

read the docs meanwhile →

join the waitlist — mailway.net

Your invite, one email away.

Mailway is in private beta — we onboard teams one at a time, in order. Leave your email and yours arrives when it's your turn.