If your application sends emails to confirm new accounts, reset user passwords, or handle billing and invoicing, then it’s sending transactional emails. This kind of functionality is extremely common, so naturally there are a lot of vendors that provide these services. But which transactional email API is right for your application?
To help you pick the one that’s right for you, I’m going to introduce you to six of the best transactional email services available. I’ll evaluate each one according to five different criteria:
Features: Does it have or is it missing common features for transactional APIs?
Deliverability: Do customers often complain about their emails going to spam or not being delivered? Is the company focused on deliverability?
API documentation, libraries, and SDK availability: How easy is it to integrate with this provider? Does it support most major languages/frameworks? How complete/accurate is its documentation?
Analytics: Can your team see deliveries/opens/clicks? Does the service support this via a dashboard or API only?
Pricing: What is the cheapest plan and what are its limits? How does the pricing scale?
While there are dozens of transactional email available today, there are just a handful that consistently deliver on speed, security, and ease of use. Here are the six that I highly recommend:
Amazon SES: Highly cost-effective solution
Mailchimp Transactional (formerly Mandrill): Feature-rich interface
Mailgun: Robust email validation tools
Postmark: Fast email delivery
SendGrid: Industry-leading email API
SparkPost: Advanced email analytics
Given the complexity of these services, I can’t cover all of them in depth. However, this list should provide a good overview, so you can quickly determine where you want to learn more.
Ready to start sending? Courier is the fastest way to get set up with or migrate to a new transactional email service. You can easily design, orchestrate, and track your transactional emails using Courier’s intuitive API and software. Sign up for free.
Marketed as "a cost-effective, flexible, and scalable email service that enables developers to send mail from within any application," Amazon SES is one of the most widely used transactional email services. If you’re looking for a service that focuses on the essence of transactional email, is low cost, and can be readily integrated with Amazon Web Services, then SES is the choice for you.
In comparison to the other vendors, SES is lighter on features, but don’t let that dissuade you. In addition to sending (and receiving) emails, it:
Supports email testing with a mailbox simulator.
Offers shared, bring your own, and dedicated IPs (though dedicated IPs cost $24.95 per/month).
Can be integrated with other AWS components, such as CloudWatch, EC2, S3, and CloudFront.
It’s worth noting that new accounts are initially sandboxed. This limits them to sending a maximum of 200 messages in a 24-hour period and only to email addresses and domains that you have proven you own. You can get your account removed from the sandbox via the SES console.
SES uses content filtering to help ensure that ISPs will deliver messages sent. It also provides a reputation dashboard and feedback loop to help you monitor the key metrics that affect deliverability (bounces, complaints, and delivery notifications). Solid documentation covers each of these areas.
That said, less technically minded people will likely find it challenging, especially if they’re not familiar with the AWS console.
SES provides email statistics, such as open and click-through rates, deliveries, bounces, and feedback loop results via both the SES console and the SES API. It also includes a reputation dashboard for tracking the overall bounce and feedback loops. This helps with awareness of other issues such as spamtrap hits, references to blocked domains in your emails, and reports from reputable anti-spam organizations.
Analytics in SES doesn’t have the native maturity of other vendors in this list. That said, SES can be integrated with other AWS services, such as Kinesis Data Firehose and Kinesis Data Analytics, or external services to provide richer analytics handling.
SES can be extremely competitively priced, even the cheapest of all options. If your app is hosted in Amazon EC2, the first 62,000 emails, per month, are free. For emails over that limit, it costs $0.1 for every 1,000 emails you send, plus $0.12 for each GB of attachments. Receiving emails costs $0 for the first 1,000 emails and $0.10 for every 1,000 emails you receive after that, plus $0.09 for every 1,000 incoming email chunks.
That said, please be aware of the following in SES’s pricing documentation:
"You pay for outgoing mail data, incoming mail chunks, and EC2 data transfer fees—even if your usage of Amazon SES qualifies for the AWS Free Usage Tier."
SES pricing can get quite complicated, so make sure you use their pricing calculator to estimate your costs.
See how you can integrate Amazon SES and Courier.
Mailchimp Transactional markets itself as "email for small business. Deliver fast, personalized transactional emails using API or SMTP."
Formerly known as Mandrill, it was merged into Mailchimp in 2016. The service is still feature rich and very stable – if you’re looking for a service with a long history, a large complement of features, solid analytics, easy setup, and great documentation, then Mailchimp is for you.
Mailchimp Transactional offers three core features:
Sending transactional emails either via an API or SMTP.
Processing inbound emails and events.
More specifically, it provides:
Templates and dynamic content, allowing emails to be fully customized.
Email scheduling and prioritization.
Subaccounts, which allow you to manage reputation, activity, reports, and quotas separately. Helpful if you’re sending email from different applications.
Tags and metadata, which allow emails to be labeled, in turn helping you report on the activity of your messages.
Webhooks, which allow you to programmatically respond to email events as they occur, such as hard and soft bounces, opens, clicks, and unsubscribes.
Custom tracking domains, which let you display a different tracking URL in your emails.
Mailchimp states that it can deliver one million emails in forty-five minutes. To achieve this, it approaches deliverability from a series of perspectives, including:
Being a member of several industry-wide organizations dedicated to deliverability (ESPC, AOTA, MAAWG, and EEC).
Being registered with the major ISPs, so you can receive alerts when a campaign is marked as junk.
Its own abuse-prevention system called Omnivore.
There aren’t as many language libraries as most of the other services, but Mailchimp Transactional still covers the most popular web-based languages (PHP, Python, Node.js, and Ruby). It has in-depth user guides, developer documentation, and API references, as well as mobile SDKs for iOS and Android. I did find the documentation a little opaque at first, but after a little bit of reading, I appreciated that it’s quite comprehensive.
Analytics in Mailchimp Transactional is pretty comprehensive. With it, both via the API and in the app, you can:
Search outbound activity, such as tags, subject lines, and opens
Tag outbound emails with automated or custom tags, which can later be searched on
Run reports, such as unique and total opens and clicks, total deliveries, bounces, and rejections
Analyze your data by demographics, compare statistics, and run split tests
Mailchimp Transactional’s pricing structure is a little simpler than SES. That said, it does require a Mailchimp account, which ranges from $9.99 to 299.00 per month. The pricing works in blocks, starting at $20, but gets cheaper the more blocks you buy, down to $10 per block.
With each block, you can send 25,000 emails. It’s worth noting that any unused blocks don’t roll over. They expire at the end of the month. New users can send up to 500 emails for free.
See how you can integrate Mailchimp Transactional (formerly Mandrill) and Courier.
Mailgun markets itself as “the email service for developers,” with “powerful APIs that enable you to send, receive, and track email effortlessly.” It’s used by several well-known global brands, including Microsoft, Dell, Four Seasons, and Lyft. If you’re looking for a vendor that provides a comprehensive range of features, with a well-designed, easy-to-use API and dashboard, then Mailgun is an excellent choice.
Mailgun has a compelling range of features, including:
Sending emails using an API as well as SMTP.
Customizing emails with email templates.
Standard email authentication methods, such as DKIM, SPF, and DMARC.
Dedicated IPs and isolated sending domains.
Batch sending and scheduling delivery of emails, message queues, mailing lists, templates.
EU and US-based servers.
The ability to attach data to messages (good for campaign and receipt identifiers).
In addition to these features, Mailgun provides an analytics dashboard to review several key indicators, such as subject lines that get the highest opens, percentage of opens on mobile versus desktop devices, and mailbox providers. You can also view the standard baseline metrics of successful and failed deliveries, opens, and clicks.
Mailgun offers several features that help ensure deliverability:
Real-time email address verification.
The ability to bulk clean subscriber lists.
Email spam checking.
Also, Mailgun offers three additional services to further help deliverability:
Deliverability services, which give you access to a dedicated Mailgun email expert and custom deliverability strategy.
Enterprise deliverability services for high-volume senders and guaranteed throughput, delivery, and support performance SLAs.
Rapid fire email delivery and burst sending. This one is particularly notable, as it’s designed to “ensure your emails reach the inbox in record time with 99% attempted delivery of your messages within the first five minutes after you send.”
Mailgun offers a large number of libraries, including for Python, Perl, Ruby, Java, Kotlin, Go, C#, PHP, Node.js, Luvit, and cURL. While its developer documentation isn’t as flashy as some of the other vendors, it’s quite comprehensive and thorough. It has everything you’d expect, including a quickstart guide, a user manual, and API reference.
Worth particular mention is the fact that Mailgun’s documentation has given special attention to an Email Best Practices section. Quite handy for helping ensure high deliverability and a healthy reputation. That plus a very user-friendly dashboard means Mailgun is, of all the services, one of the easiest to get started with.
Mailgun’s analytics service tracks opens, clicks, unsubscribes, spam complaints, deliveries and failures. Also, you can use analytics data to determine the best time to send your emails, and learn more about email performance by several criteria, including device, location, and mailbox provider.
Mailgun offers four predefined plans and custom plans, depending on what your needs are. The pre-defined plans range from pay-as-you-go for the base flex plan up to $90 per month for the top-level plan. The base plan gives you 5,000 free emails per month for three months. If you go over that limit, it costs $0.80 per 1,000 emails.
Each plan includes analytics, 24/7 ticket support, and a 99.99% guaranteed uptime SLA.
See how you can integrate Mailgun and Courier.
Postmark markets itself as "reliable delivery for your application emails,” and promises to “deliver your email to customers on time, every time." If you’re looking for a battle-tested service backed by a strong infrastructure, capable of handling extremely high mail volumes with a significant emphasis on deliverability, and you don’t mind paying a bit extra, then check out Postmark.
Postmark offers an array of features that give deep insight into your email history, helping you achieve high deliverability. You can:
Access 45 days of full content message history.
Filter analytics data by delivery events, tags, or date.
Tag messages so that it’s easier to search them later.
Organize emails into logical groups, handy if you use them for multiple applications.
Use webhooks to react to system lifecycle events.
Utilize managed and dedicated IPs.
In addition to these features, the API affords the ability to manage servers, domains, sender signatures, templates, as well as retrieve stats.
Postmark places a lot of emphasis on deliverability – in its documentation, its key features matrix, a dedicated page on email deliverability, and even a Time-to-Inbox dashboard that shows delivery time for each of the five major ISPs (Gmail, Yahoo, Outlook, AOL, and iCloud). Its delivery FAQ states:
"Great delivery is included for all of our customers, free or high volume. We don’t think that great delivery should be an add-on or up-charge, and we stand behind our email delivery on both our shared and dedicated IP addresses."
Postmark supports the most languages and integrations of any of the vendors in this list: Classic ASP, Google Go(lang), Haskell, Java, Erlang, Node.js, Perl, Scala, and Swift. It also goes further than the others as far as supported frameworks, such as Drupal, WordPress, Magento, and Django, as well as PHP’s Laravel and Zend.
Postmark has in-depth user guides, developer documentation, and API references. Something that particularly stood out to me are the in-depth guides for migrating from SendGrid, Mailgun, Amazon SES, SparkPost, or Mailchimp Transactional (Mandrill).
Postmark provides comprehensive analytics, including the following functionalities:
View the activity history for all messages sent to a specific email address.
Track bounce, delivery, open, and link click events. It also records when the receiving mail server accepted the email, whether there were any errors with recipients, and with open tracking enabled, when the email was read, by whom, and from what email client and location.
Access each recipient’s message and delivery history.
Postmark also has a very user-friendly dashboard, if that’s the way you prefer to view your account analytics. However, it has a range of API endpoints that can retrieve the information programmatically as well.
Postmark’s pricing structure is similar to others in this list, based on the number of emails sent. Each plan has a cap, which can be exceeded for a cost per 1,000 emails. That said, it’s one of the most expensive of the lot.
The plans range from 10,000 emails per month for $10.00 to 5 million emails per month for $1,200.00. The cost per additional 1,000 emails starts at $1.25 and drops to $0.25. Additional plans are available if you need to send at a higher volume. It’s worth noting that unused emails don’t roll over to the next billing period.
See how you can integrate Postmark and Courier.
SendGrid is the largest transactional email service on this list, sending over 70 billion emails every month. Similar to Mailchimp, Mailgun, and Postmark, SendGrid is available via an API as well as a slick dashboard. Acquired by Twilio in 2019, the company markets itself as a "partner with the email service trusted by developers and marketers for time-savings, scalability, and delivery expertise."
If you’re looking for a service that can handle large mail volumes, is easy to get started with, and part of a larger communication group, then SendGrid is an excellent choice.
SendGrid has a large number of features, including:
Email authentication methods (DKIM and SPF).
Shared and dedicated IPs, and dedicated IP pooling.
Email validation API to protect your sending reputation.
Dynamic template editor.
Customized link URLs for tracking.
Reverse DNS to verify the email address you’re sending from.
Email testing for inbox rendering and spam filter prevention.
SendGrid has invested in a number of key features to optimize deliverability. They approach it from three angles: infrastructure, authentication, and reputation.
Their deliverability features spans automated IP warmup, reverse DNS, branded links, blacklist monitoring, bounce management, email validation, and Adaptive Communication Engine, their artificial intelligence engine.
SendGrid does an excellent job when it comes to documentation. It offers in-depth user guides, developer documentation, API references, a blog, videos and podcasts, webcasts, and a dedicated knowledge center. It has libraries for most modern languages, including cURL, PHP, Java, Node.js, Go(lang), C#, Ruby, and Python.
SendGrid has quite comprehensive analytics, including real-time analytics, engagement tracking, ISP feedback loop data, subuser comparison statistics, and searchable email activity (capped at a maximum of seven days). This information is available both via API endpoints as well as a user-friendly dashboard.
SendGrid offers four plans. The entry-level, or Free, plan lets you send 100 emails a day forever. The Essentials plan starts at $14.95 per month and lets you send up to 100,000 emails per month. The Pro plan ranges from $89.95 per month to $749.00 per month and lets you send up to 1.5 million emails per month. For larger volume requirements, there’s the Premier plan.
See how you can integrate Sendgrid and Courier.
SparkPost markets itself as "Email Insights and Sending Made Easy. Deliverability and Analytics For Better Email Performance." Its homepage boasts three key metrics:
They deliver over 37% of all B2C and B2B email.
Over 1.8 billion unique devices engaged in the cloud.
99.9% uptime, guaranteed by SLA.
SparkPost is quite a full-featured service, including:
Ability to send emails using an API as well as SMTP
Dedicated IPs, IP pools, and automated IP warmup.
Custom metadata to personalize emails.
Template management system.
Real-time alerts and email delivery analysis.
Reverse DNS and spamtrap monitoring.
Support for standard email authentication methods, such as DKIM, SPF, and DMARC.
An SPF builder to simplify creating a working SPF record.
SparkPost offers its own unique deliverability technology, Adaptive Delivery, which aggregates real-time delivery data to automatically optimize email delivery and reduce bounces, blocks, and delays.
Like Mailgun, Sparkpost offers managed deliverability services, which give you access to a dedicated technical account manager and additional deliverability planning and reporting.
Similar to all the transactional email services in this list, SparkPost provides a solid assortment of documentation, including guides for getting started, developer and API documentation, and a developer blog. It also has a community Slack, with 8,889 registered users. It has libraries for most modern languages, including PHP, Java, Node.js, Go(lang), Elixir, C#, Ruby, and Python.
SparkPost provides a dashboard backed by a set of tools for managing analytics. It includes a Predictive Email Health Score that incorporates ISP responses, bounces, and spamtraps in real time. The dashboard also tracks engagement and unsubscribes, as well as spam complaint rates.
SparkPost’s pricing structure includes three paid plans, and one free, where the price is based on the number of emails sent per month. The base (Starter) plan starts at $20 per month and can send between 50,000 and 250,000 emails. The next (Premium) plan starts at $75 per month and can send from 100,000 to 1 million emails.
As you can see, there is an overlap between the base and second plans. For higher volumes, there is the Enterprise plan. It’s worth noting that a number of features are either limited in the Starter plan or not available.
See how you can integrate SparkPost and Courier.
And that’s our introduction to six of the best transactional email APIs available for developers today. We considered each one by its features, deliverability, API documentation, analytics, and pricing. If you’re considering using a transactional email service, this article should be a good place to begin your decision-making process.
One last thing: if you’re looking for the fastest way to get set up with or migrate to any of the email service providers I covered here, don’t forget to check out Courier. Design, orchestrate, and track your transactional emails with Courier’s intuitive API and software. Plus, it’s totally free to sign up.
Matthew Setter is a security-focused software engineer who specializes in web development, mainly in PHP. When he’s not writing PHP code, you can find him writing all about web development at matthewsetter.com and creating courses for Pluralsight.
In this post, we will start diving into the internals of Postgres to understand how replication works an...
January 20, 2022
In the bigger picture, observability ties your technological infrastructure to your overarching product ...
December 15, 2021