Observability

What happened after 250 OK.

Every message gets a timeline: the SMTP session, the rules it matched, each provider attempt, and the delivery events that came back — one normalized delivery history across every provider you bring.

A provider's 250 OK only means one server accepted the handoff. Email observability is everything after: which rules matched, which provider attempt succeeded, what the provider reported back — delivered, bounced, complained — and how long each step took. Mailway records that timeline for every message, down to the raw SMTP session.

Because every provider reports back into the same gateway, those outcomes pool into one normalized delivery history — a vantage point no single provider has. An SES bounce and a Mailgun bounce read the same, outcomes are comparable side by side, and a hard bounce learned through one provider lands on the suppression list that gates them all.

The dashboard says which number it shows you: provider-accepted is not delivered, and Mailway never blurs the two. Delivery events currently flow back from Amazon SES and Mailtrap; every event can also reach your own app as a signed webhook, and the message itself stays in the archive. When a message didn't land, the troubleshooting guide starts from this same timeline.

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
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

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.