SMTP quickstart
If your application already sends mail over SMTP, switching to Mailway is a
configuration change — no code. Your app authenticates against
smtp.mailway.net, and Mailway relays each message through the providers you
attached to the project, byte-for-byte.
-
Create an SMTP credential.
In the console, open SMTP credentials and create a credential for the project that should own this traffic. You get a username (
mw_user_…— the credential’s own ID) and a password (mw_pass_…— the secret of the pair). Store the password in your secret manager; if you lose it, you can re-reveal it from the project’s Credentials tab. -
Point your app at Mailway.
SMTP_HOST=smtp.mailway.netSMTP_PORT=587SMTP_USERNAME=mw_user_…SMTP_PASSWORD=mw_pass_…SMTP_ENCRYPTION=tls # STARTTLSMAIL_MAILER=smtpMAIL_HOST=smtp.mailway.netMAIL_PORT=587MAIL_USERNAME=mw_user_…MAIL_PASSWORD=mw_pass_…MAIL_ENCRYPTION=tlsimport nodemailer from 'nodemailer';const transport = nodemailer.createTransport({host: 'smtp.mailway.net',port: 587,secure: false, // STARTTLS is negotiated automaticallyauth: {user: process.env.SMTP_USERNAME,pass: process.env.SMTP_PASSWORD,},}); -
Send something.
Trigger any mail your app already sends. That’s it — the message shows up in the console’s Mails log within seconds, with its full delivery pipeline attached. If it doesn’t appear or shows an error, troubleshooting maps the symptom to a fix.
Mailway listens on seven SMTP ports, so there is always one your host can reach:
| Port | Protocol | Notes |
|---|---|---|
| 587 | SMTP + STARTTLS | The standard submission port — use this if you can. |
| 465 | SMTPS (implicit TLS) | Legacy secure SMTP. |
| 25 | SMTP + STARTTLS | Standard relay port. |
| 2525, 2587, 588 | SMTP + STARTTLS | Alternates for clouds that block the standard ports. |
| 2465 | SMTPS (implicit TLS) | Alternate for 465. |
The alternates matter more than they look: GCP blocks outbound port 25
permanently, DigitalOcean blocks outbound 25, 465 and 587, and AWS
blocks 25 by default. If your platform can’t reach a standard port, use
2587 (STARTTLS) or 2465 (implicit TLS) with the same credentials.
Authentication
Section titled “Authentication”- Mechanisms:
PLAINandLOGIN. - TLS is required before AUTH — the server refuses authentication on a plaintext connection. Use STARTTLS on the submission ports or implicit TLS on 465/2465.
- Credentials are per-project. A credential can only send through the project it belongs to, so a leaked key is contained.
Deliverability is still yours
Section titled “Deliverability is still yours”Mailway relays through your provider account, so inbox placement lives where it always did: verify your sending domain at your provider and keep SPF/DKIM/DMARC green on your DNS — see Deliverability for what each record does. If you’re on SES, the setup guide covers the exact records — including wiring real delivery/bounce events back into Mailway.
Testing without delivering
Section titled “Testing without delivering”For staging and CI, use the sandbox: the same SMTP config
against smtp.mailway.dev, or the Send API against api.mailway.dev with a
mw_test_… key. Messages are accepted, stored, and visible in the console,
but never forwarded automatically — nothing reaches a provider or a
recipient unless you explicitly release a capture from the console.
Cookie consent
We run ads. Knowing whether they work needs your OK for one cookie each from Google and Reddit, 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.