Email service providers (ESPs)

Find out the best ways to programmatically send email

What is an ESP?

If you are building a SaaS, you need to send emails to users. It is generally not a good idea for you to build out SMTP rails from first principles, which is where the concept of an "email service provider" comes in.

This is a distinct product + infrastructure from "email providers" writ large like Mailchimp or Substack or Klaviyo. Those companies provide email marketing service. (Notably, two providers listed below — Mailchimp and Sendinblue — provide both email marketing and transactional email services.)

Okay, gimme the deets.

ServiceFree tier?10K emails100K emails1M emailsDedicated IP?
Mailgun5000/month$5.00$75.00$650.00Free at 100k emails$25.00$80.00$500.00Free at 100k emails
AWS SES$1.00$10.00$100.00$24.95
SparkPost500/month$20.00$30.00$525.00Free at 250k emails
Mailjet6000/month$15.00$95.00Free at 100k emails
SocketLabs2000/month$40.00$80.00$515.00Free at 100k emails

Plus some caveats and miscellany:

So uh, does that mean I shouldn't just go with SES?

Well, yes and no. SES is certainly the best-priced option for most use cases, but the developer experience is... not great. The admin tooling is on par with the rest of AWS's dashboard, which is to say it is an acquired taste. If you're sending less than 100k emails/month, I'd personally recommend using another provider whose tooling is more user-friendly; the $10 you save per month is not worth the time you'll spend having to wire up all the things you need.

What's the deal with this 'dedicated IP' thing?

Let's pretend that every single email in the world has a "quality score" associated with it. The higher that quality score, the more likely it is to be delivered to the inbox and avoid the spam folder. One of the many, many factors that goes into that quality score is the IP address that the email is sent from. IP addresses that have been associated with low-quality emails in the past are more likely to be associated with low-quality emails in the future, and so a 'low quality' IP address is going to hurt your quality score.

All ESPs have two options for sending email: shared IP where you're sending mail from a pool of IPs that are shared with other customers, and dedicated IP where you're sending mail from one or more IP addresses that is only used by you.

You might read those two paragraphs as "okay, so I want a dedicated IP no matter what." But that's not necessarily the case. If you're sending a small volume of email, you're probably better off using a shared IP; an IP address with low or spiky volume is going to be associated with low quality.

Do all shared IPs have the same reputation?

Bluntly – no. Some shared IPs are better than others. ESPs have one main lever to keep their shared IPs in good standing with the email providers: they can kick off customers who are sending volume that is driving down their IP address's quality score. The absolute best shared IPs are ones that are the most stringent about kicking off customers who are sending low-quality email. In my (anecdotal, unscientific) experience, Postmark has the best shared IPs and AWS has the worst.

(Again, this only really applies if you're sending a small volume of email. These particulars are less important if your sending volume warrants a dedicated IP.)

I'm sending more than a million emails every month.

You're likely in a position to negotiate a better deal than sticker rate for your volume!

Why should I trust you? What's your angle?

I have no relationship with any of the organizations listed besides being an active customer of four of them (Postmark, SendGrid, Mailgun, and SES.)

I thought Postmark can only be used for transactional stuff?

That was true in the past, but they've since changed their policy. You can now use Postmark for marketing emails.

Are there any open source options?

I have not used it myself and cannot vouch for its quality or merit, but Postal may fit your bill.

I can't decide. Tell me who to use.

Okay, fine. Use Postmark. I think their interface is the best.

What about [other provider]?

Email me! I'll add it.

Gee, it sure is awfully nice of you to compile this resource and keep it up to date. What can I ever do to thank you?

Tell your friends about Buttondown, the best way to add email subscriptions to your website.

Brought to you by Justin Duke. I hope your shower hits the perfect temperature immediately.