ZeroSMTP
August 30, 2026 · View on GitHub
ZeroSMTP — a free SMTP relay that still accepts basic auth
Your printer, scanner or app stopped sending email through Microsoft 365? You're most likely hitting the Basic authentication shutdown. This site explains what happened, lists every way to fix it, and documents one free option among them.
535 5.7.139 Authentication unsuccessful, basic authentication is disabled
If that's the error you're seeing, start with Exchange Online SMTP AUTH migration.
Basic authentication for SMTP AUTH is disabled by default on existing Microsoft 365 tenants at the end of December 2026.
Connection settings
Three values, straight into the SMTP fields your device or app already has. No SDK, no API key, no DNS records.
| Setting | Value |
|---|---|
| Server | mx.msgwing.com |
| Port | 587 (STARTTLS) — try this first |
| Port | 465 (SSL/TLS) — if the device insists |
| Authentication | Plain username and password, from your account |
Get free credentials — free, no card. 200 messages a
day, sent from a generated @msgwing.com address rather than your own
domain. If the From address has to be your own domain, this is the wrong
tool and the alternatives page says which one is right.
Start here
A printer or scanner stopped emailing
Scan-to-email died, the panel shows an authentication error, or the device refuses the certificate.
- Setup by brand — Canon, Epson, Brother, HP, Ricoh, Kyocera, Xerox
- Does my model have OAuth firmware?
- It will not trust the certificate
You run the servers this breaks
Find out what else in the environment sends mail with a password before December finds it for you.
Your code or app cannot send
The library printed a summary of the error rather than the error. Start from the string you actually have.
You are deciding whether to trust this
Free, and that always deserves the question. Where the data goes, what the limits are, and when something else is the better answer.
Everything else is in the table further down — these three cover most of it.
If you have an error in front of you right now, skip the table:
npx zerosmtp-check --explain "535 5.7.139 Authentication unsuccessful"
Paste whatever your client printed. A Postfix SASL line, a Python traceback,
1102 off a Kyocera panel, or curl: (67) Login denied — which shows none of
the server's answer at all. Seventeen error strings are covered, and each one
says whether the cause can still be turned back on before the end of December
2026, because three of the four still can.
If mail is hanging rather than being refused, run it with no arguments: it checks ports 25, 587 and 465 from the machine that is actually failing, which is the only place the answer means anything. Nothing to install, no credentials, no mail sent.
| If you… | Go to |
|---|---|
Got an authentication error from smtp.office365.com | Exchange Online SMTP AUTH migration |
| Need to know what else in your environment will break | What breaks: affected systems |
| Have a printer or MFP to reconfigure | Printer scan-to-email setup by brand |
| Have an HP printer saying "SMTP server requires authentication" | What that means and how to fix it |
| Have a printer that will not trust the server's certificate | Why, and when turning it off is right |
| Just want a home printer to email a scan, and Gmail or Hotmail stopped working | Scan to email from a home printer |
| Manage Windows Server / IIS / Exchange | Windows Server guide |
| Have an app that can only "deliver to local SMTP server" | IIS SMTP relay and Microsoft 365 |
| Manage Linux servers | Linux · system-wide relay |
| Want to look up one device or product | OAuth compatibility list |
| Have a printer whose vendor says no OAuth firmware is coming | Devices that will never get OAuth firmware |
| Are sending from an app or script | 21 code examples across 19 languages |
| Are deploying to Cloudflare Workers, Vercel, Netlify or AWS Lambda | Can I send SMTP from a serverless platform? |
| Want to know how big this actually is | How much public code breaks in December 2026 — measured weekly |
| Need a citable summary for an article or report | State of the Basic auth shutdown, Q3 2026 |
| Deploy with Ansible or Docker Compose | Deployment recipes |
| Have an error message to look up | 535 5.7.139 and other SMTP AUTH errors |
| Have it failing or timing out | Troubleshooting |
| Have monitoring/alerting tools that need to send mail | Monitoring alerts |
| Want to see confirmed fixes for specific hardware | Device case studies |
| Are comparing free SMTP relays | ZeroSMTP vs. other free relays |
| Just want the short answers | FAQ |
What is happening
Microsoft is retiring Basic authentication (username + password) for SMTP AUTH in Exchange Online. Per Microsoft's updated timeline, it is disabled by default on existing tenants at the end of December 2026, unavailable by default for tenants created after that, with final removal announced in the second half of 2027.
Devices that can run OAuth 2.0 can be updated. Older printers, scanners, NAS units and line-of-business software generally cannot — and for many of them no firmware update will ever exist.
What ZeroSMTP is
A free SMTP relay at mx.msgwing.com that still accepts a plain username
and password over TLS. For a device with no OAuth path, migrating means
changing three fields:
| Setting | From | To |
|---|---|---|
| Server | smtp.office365.com | mx.msgwing.com |
| Port | 587 | 587 (STARTTLS) or 465 (SSL/TLS) |
| Credentials | Microsoft 365 account | free @msgwing.com account |
The trade-off, stated plainly: mail is sent from an @msgwing.com
address, not your own domain
(why),
and there is a 200 emails/day limit.
In exchange, there's no DNS work: most free relays require verifying your own domain (SPF/DKIM records, propagation, sender reputation to manage yourself) before they'll send normally. ZeroSMTP skips that entirely.
Full breakdown: ZeroSMTP vs. other free SMTP relays.
That makes it a good fit for scan-to-email, device and backup alerts, monitoring notifications, homelabs, schools and small offices — anywhere the message just needs to arrive. It is not the right answer for customer-facing mail or anything that must come from your company domain. The migration guide covers the options that are, including Microsoft's own.
Get started
- Register a free account at msgwing.com.
- Copy the generated
@msgwing.comusername and password. - Point your device or app at
mx.msgwing.comon port 587 with STARTTLS.
Full quickstart, 15 language examples and setup guides are in the GitHub repository.
Service status is checked automatically every 15 minutes — see the live check. Questions or corrections: open an issue, or browse existing questions in Discussions.