Why SMTP is no longer the default for app email
SMTP still works. For product email in 2026, an HTTPS API is usually the better default.
SMTP is the lingua franca of mail servers. It earned that status for good reasons. It is also an awkward default for a modern app backend.
What SMTP quietly costs you
Running product email over SMTP usually means:
- SMTP users, passwords, and ports in every environment
- Firewall and provider quirks (587 vs 465, STARTTLS fights, “works on my laptop”)
- Weak observability unless you build logging yourself
- A slow slide into operating a tiny ESP you did not intend to own
Libraries like Nodemailer made the code pleasant. They did not make deliverability, bounce handling, complaint feedback, or domain authentication disappear. Those problems moved to whoever owns the relay.
What an HTTPS email API changes
One POST. An API key. JSON in, acceptance out.
Domain verification lives in a UI. Delivery events show up as logs. Webhooks push bounces without you parsing DSNs from a mailbox you forgot existed.
You still care about SPF and DKIM. You still own the message body. You stop pretending your Next.js route handler is a mail transfer agent.
When SMTP still wins
SMTP is the right tool when:
- You are talking to ancient on-prem systems that only speak SMTP
- You already operate a hardened relay and like operating it
- Compliance paperwork literally requires a specific SMTP path
- You are debugging mail infrastructure, not shipping a SaaS feature
Those are real cases. They are not the median startup shipping auth email.
The default should match the job
If the job is “send this HTML to this user when they click forgot password,” the default should be an HTTPS API with clear failure modes — not a protocol designed for store-and-forward between MTAs.
SMTP is not dead. It just should not be the first thing you reach for when the product question is transactional email.
Related
Frequently asked questions
Why is SMTP no longer the default for app email?
SMTP still moves mail between servers, but app backends usually want HTTPS: one POST, an API key, clearer errors, and provider logs/webhooks without fighting ports and STARTTLS.
Should I replace SMTP with Notify?
For new product email, yes in most cases. Keep SMTP only when software can only speak SMTP or you run your own MTA. SMTP vs email APIs.
Does Notify use SMTP under the hood?
Your app talks HTTPS to Notify. Mail still travels over the internet’s SMTP fabric after that — you just do not operate that hop yourself.
How do I migrate from SMTP to Notify?
Swap the client for fetch + x-api-key, map the body to message, verify your domain, and update webhooks. Guide: Migrate from SMTP.