The Complete SaaS Email Guide: Transactional vs Marketing, and What to Pay
Transactional vs marketing email explained — why you need different tools for each, and how to run both for close to $0 as a solopreneur.
Table of contents8 sections
- 01The Night My Password Resets Went to Spam
- 02Two Emails That Aren’t the Same
- 03Why One Tool Won’t Cut It
- 04Transactional: What to Actually Pay
- 05Marketing: The Per-Email Trap
- 06Deliverability: The Boring DNS Stuff I Ignored (And Paid For)
- 07My Actual Email Stack
- 08What I Actually Learned (After Paying for It)
The Night My Password Resets Went to Spam
It was 2022. I’d shipped a small SaaS — nothing fancy, a login, a dashboard, the usual — and I was doing that thing every founder does at 1 AM: creating a fake account to feel like a real user for thirty seconds. I signed up. I waited for the confirmation email. Nothing. I clicked “forgot password.” Nothing. I checked spam. There they both were, sitting in the junk folder between a coupon blast and something promising to fix my credit score.
My first three users — actual humans who’d found the thing on their own — had gone through the exact same experience and just… left. No rage, no feedback. They just never came back, because the product silently didn’t work. And the worst part? I’d been so proud of the email code. It sent. It just sent into the void.
That night taught me something nobody tells you when you’re learning to build: email is not one problem. It’s two. And if you treat it as one, you either burn money or you burn your sender reputation. I’ve done both. Let me save you the 1 AM panic.
Two Emails That Aren’t the Same
Here’s the split that took me embarrassingly long to internalize.
Transactional email is triggered by a user doing something. Someone signs up → confirmation. Someone forgets a password → reset link. Someone pays → receipt (the order confirmation email is the textbook one). Someone requests a 2FA code → OTP. These are one-to-one, sent in real time, and the person is actively waiting for them. If a password reset takes four minutes, you’ve lost the user. These emails have to be fast, and they have to land in the inbox, every single time.
Marketing email is the opposite. You decide to send it. Newsletters, product updates, “we miss you” nudges, a launch announcement. These go out in batches, on your schedule, to people who may or may not care. Nobody is sitting there refreshing their inbox waiting for your Tuesday newsletter. (Stuck on what to actually put in it? I listed newsletter ideas that people actually open.)
Different trigger, different urgency, different expectations. And — this is the part that actually matters for your wallet and your deliverability — different infrastructure.
Why One Tool Won’t Cut It
When I first learned the difference, my reaction was, “Fine, but can’t I just use one service for both?” You can. You shouldn’t. Here’s why.
Here’s the thing I didn’t understand for ages, because nobody shows you a dashboard for it: every domain and IP you send from has a reputation score. Gmail and Outlook are silently grading you based on how people react to your mail. You can’t see the score. But it’s there, and it decides whether your stuff lands in the inbox or the void.
Transactional email has beautiful engagement. Someone signs up, they want the confirmation. They forget a password, they actually click the reset link. Nobody marks an OTP as spam. This builds a pristine reputation — the kind Gmail trusts on sight.
Marketing email? Ugly engagement. People ignore newsletters. A few, in a bad mood, hit the spam button. That’s normal. That’s fine — if it’s happening to a separate reputation.
Now mix them. Send a Tuesday promo from the same IP as your password resets. Fifty people spam-flag it because they’re annoyed. Suddenly Gmail decides your domain is a little sketchy overall, and your password reset — the thing someone is actively waiting on, staring at their inbox — lands in junk. You poisoned the well with a newsletter, and you didn’t even know you did it.
There’s a money reason too. Transactional services price per email, cheaply, because volume is low and predictable. Marketing services price per subscriber with unlimited sends, because volume is high and bursty. Use a transactional tool for a 10,000-person newsletter and the per-email cost eats you alive. Use a marketing tool for OTPs and you’re overpaying for features you don’t need — and often violating their terms, which is a fast way to get suspended.
Two jobs. Two tools. This is the one place I don’t let you cut a corner.
Transactional: What to Actually Pay
This is the survival-critical mail, so let’s get it right and cheap.
Start with Resend. It’s the one nearly everyone starts on, and for good reason — 3,000 emails a month free (capped at 100/day), a clean API, and docs that don’t make you cry. For a new SaaS with 100–200 users, 3,000/month is miles more than you’ll send. Start here, pay nothing, ship. (Coming from SendGrid specifically? I lined up the SendGrid alternatives worth switching to.)
When you outgrow the free tier, Resend’s Pro plan is $20/month for 50,000 emails. Fine. But I wouldn’t pay it, because there’s something cheaper that’s just as reliable.
Graduate to ZeptoMail. This is Zoho’s transactional-only service, and it’s the best-kept secret in indie email. Pay-as-you-go credits: $2.50 buys you 10,000 emails ($0.00025 each), and the credits stay valid for six months. No monthly fee — send zero emails one month, pay zero. They even hand you one free credit (10,000 emails) on signup.
Do the math on a real scenario. Say you’re sending 10,000 transactional emails a month for six months:
| Service | How it prices | 10k/month for 6 months |
|---|---|---|
| Resend Pro | $20/month flat | $120 |
| ZeptoMail | $2.50 per 10k credit | $15 |
| Amazon SES | $0.10 per 1,000 | ~$6 (+ AWS tax) |
ZeptoMail saves you about $105 over Resend, and you only pay for what you actually send.
“But SES is even cheaper?” Yes. Amazon SES is $0.10 per 1,000 emails — a rounding error. New AWS accounts get 3,000 free message-charges a month for the first year, too. On raw price, nothing beats it.
But it’s SES, which means it’s AWS, which means you inherit the whole AWS experience: IAM policies, verifying your domain through a console designed by committee, sandbox mode that caps you until you beg for a production limit increase, and a bounce/complaint dashboard you have to babysit or Amazon suspends you. If you already live in AWS and know the drill, SES is unbeatable. If you don’t, the $9 you “save” over ZeptoMail costs you a weekend of your life. I know which one I’d pick as a solo founder who values sleep. (I broke down the whole SES setup — sandbox, production access, the real math — in the AWS SES guide.)
One more, for the deliverability obsessives: Postmark. It’s $15/month for 10,000 emails — pricier than ZeptoMail — but it has a near-religious reputation for landing in inboxes, and it’s transactional-only by design (they’ll actually kick you off for sending marketing mail, which is a feature). If your entire business depends on OTPs arriving in two seconds, Postmark is worth the premium. For everyone else, ZeptoMail wins on price.
Marketing: The Per-Email Trap
Now the other tool. The moment you’re sending the same email to a list — a newsletter, a launch, a re-engagement blast — per-email pricing becomes your enemy. This is where you need subscriber-based, unlimited-send pricing.
My pick is SendPulse. You pay by the size of your list, and you send as many campaigns as you want. There’s a genuinely usable free tier — 15,000 emails a month — and paid plans start around $8/month and scale up to roughly $50/month depending on how many subscribers you’re holding. Send 100 emails or 100,000, the price is the same. That’s exactly what you want when you’re cold-starting and don’t even know yet if anyone wants your emails.
Now, the cautionary tale. Everyone’s first instinct is Mailchimp, because it’s the name they’ve heard. Don’t, at least not to start. In 2026 Mailchimp gutted its free plan down to 250 contacts and 500 sends a month — half of what it used to be, which was already stingy. You’ll blow through that before you have a real audience, and then you’re on a paid plan paying for a brand name. There are better, cheaper places to be while you’re small.
My take: only email people who actually open your stuff. There’s no prize for a 10,000-person list where 900 read you. Prune the dead weight, pay for the subscribers who care.
If you want the shiny modern option, Loops is a lovely SaaS-focused email tool a lot of founders love — cleaner than Mailchimp, built for product emails. It costs more than SendPulse, so I reach for it later, not on day one.
Deliverability: The Boring DNS Stuff I Ignored (And Paid For)
Picking the right tools gets you 80% of the way. The last 20% is boring plumbing — DNS records, domain reputation, authentication headers — the stuff I ignored for months because it’s not code and therefore “not my problem.” Until my password resets landed in spam and it became very much my problem.
- Authenticate your domain. SPF, DKIM, and DMARC are three DNS records that tell Gmail “yes, this mail is really from me.” Every service above walks you through them. Skip them and you’re gambling with the spam folder. This is non-negotiable in 2026 — Gmail and Yahoo now require it for bulk senders.
- Use a subdomain for marketing. Send campaigns from
news.yourapp.com, not your root domain. That way, if your marketing reputation ever takes a hit, your transactional mail on the main domain stays clean. This is the practical version of “two tools, two reputations.” - Warm up gradually. Don’t blast 50,000 emails on day one from a brand-new domain. Ramp up. A cold domain sending huge volume looks exactly like a spammer.
- Actually remove bounces and unsubscribes. Keep hammering dead addresses and complainers and your reputation rots. Every good tool automates this — let it.
None of this is glamorous. All of it is the difference between “email works” and “email silently doesn’t.” (And if this section makes you think “forget it, I’ll just run my own mail server and control all of it” — I tried exactly that, and here’s why I never do.)
My Actual Email Stack
Here’s what I’d set up today, starting from zero, for a SaaS at $0 MRR:
- Transactional: Start on Resend’s free tier (3,000/month). The day you outgrow it, move to ZeptoMail ($2.50 per 10k). Only touch SES if you’re already fluent in AWS and sending serious volume.
- Marketing: SendPulse from day one — free until your list is real, cheap after.
- Plumbing: SPF + DKIM + DMARC on both, marketing on a subdomain, and a ruthless habit of only mailing engaged users.
Total cost while you’re pre-revenue? Basically $0, maybe $10–$15 a month once you’ve got real traffic. That’s the whole thing. (Email is one line in the bigger bill — see what it really costs to run a SaaS for the rest.)
If you want the wider context — where email sits in the full bootstrapped stack alongside hosting, databases, and payments — it’s Chapter 4 of the broke solopreneur’s survival guide, and everything here is the deep version of that chapter.
What I Actually Learned (After Paying for It)
Email broke my product once without ever throwing an error. No red text, no stack trace, no Sentry alert. It just quietly sent the important stuff to spam while mixing everything together until nothing landed at all. I didn’t need a fancier tool. I needed to understand the split: transactional and marketing are two different animals that hate sharing a cage.
Keep them apart. Use a cheap transactional tool for the mail people are waiting on, a list-based tool for the mail you choose to blow out, and set up the boring DNS records. Total cost? Close to ₹0 until you have enough users to matter. That’s it.
This is the Broken Engineer Guide — I screw up the simple stuff, ignore the boring parts until they burn me, and write it all down so you skip the 1 AM panic. Now go set up SPF before Gmail decides it hates you.
