Automation

Decisions at the gateway, not in your code.

Match on sender, recipient, subject, headers, or size, then reroute, tag, hold for approval, or block, all from the dashboard.

Routing rules move email decisions out of application code and into the gateway. A rule matches on what the message is (sender, recipient, subject, headers, size, attachments) and acts before delivery: reroute to a specific provider, tag it, copy an address, hold it for a person's approval, or block it outright.

Rules are edited in the dashboard and versioned, so changing the route never means a redeploy. Every match is recorded on the message's timeline (the full filter and action reference), and a held mail waits untouched until someone releases it. That's the approval flow teams use for high-stakes sends like winner notifications.

Automation

Route by rule,
not by redeploy

The logic you'd otherwise hardcode into your app: match on sender, recipient, subject, headers, size, or attachments — then reroute, tag, bcc accounting, hold for approval, or block outright. Evaluated per message, before delivery, changed from the dashboard. Some of your cron jobs are about to be unemployed.

Conditions include
from_domainrecipient_domainrecipient_countsubjectbodyheadersizeattachmentstagingest_type
Actions include
route providerredirectadd cc / bccprepend subjectadd headertag / untagpauserejectnotify webhookstop

Domain-based routing lands on Team, the full engine with approve/reject on Business.

Rule 01 · route by recipient domainactive
whenrecipient_domainingmail.com, googlemail.com
thenroute → ses-eu
Rule 02 · archive every invoiceactive
whensubjectcontains"invoice"
thenbcc → accounting@co.eutag → billing
Rule 03 · hold the bulk blastsreview
whenrecipient_count>50
thenpause for approvalnotify webhook
3 messages held · newsletter-blast.emlapprovereject
The rules gate

One message in.
A defensible decision out.

Your app should send mail, not carry routing policy. Inside the gateway every message walks the same gate: the suppression list first, then your rules, which can tag it, hold it, or reroute it before any provider is chosen. Every decision lands on the mail's timeline; changing the policy is a console edit, not a redeploy.

stored before 250 OKrules versionedevery decision recorded
mailway · rules enginepolicy v.37
Incoming messagebilling policy
Invoice #2041
84 KB · 1 attachment
from
billing@acme.eu
to
customer@gmail.com
raw MIME stored — then 250 OK
Evaluate policysuppressions → rules
subjectcontains “invoice”match
recipient@gmail.commatch
size84 KBpass
Committed actions
tag · billingbcc · accountingroute · ses-eu
Decision recordm.01K3F2…VQ7D
Amazon SES · eu-central-1
250 accepted · 89 ms

3 rules evaluated · 2 matched · decision on the timeline

appended to the mail's timeline

Your mailer config has
one line to change

Mailway is in private beta, and 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, and we onboard teams one at a time, in order. Leave your email and yours arrives when it's your turn.