In this guide · 9 sections
- 01SendGrid vs Mailgun vs Amazon SES at a glance
- 02What each one costs at small-business volumes
- 03DNS records each service needs
- 04SPF lookup cost: why Mailgun on the root domain can break SPF
- 05Shared vs dedicated IPs
- 06Setup for WordPress, Shopify and custom apps
- 07Which one to choose
- 08Do it yourself or get help?
- 09Frequently asked questions
Short answer
For low volumes with little admin, SendGrid or Mailgun are the easiest: both have free or trial tiers and simple dashboards. Amazon SES is far cheaper per email (US$0.10 per 1,000 on pay-as-you-go) but needs an AWS account, a sandbox exit request and more DNS work.
SendGrid vs Mailgun vs Amazon SES at a glance
All three are transactional email services: your website or app hands them a message over SMTP or an API, and they deliver it with proper authentication. Prices below are from each vendor's pricing page, in US dollars, approximate, as of October 2026.
Twilio SendGrid
Free trial, then from US$19.95/mo
- Free trial: 100 emails a day for 60 days
- Essentials from US$19.95/mo for 50,000 to 100,000 emails
- Pro from US$89.95/mo, 1 dedicated IP included
- Automated security manages SPF and DKIM through CNAME records
Best for: Small sites and apps that want a dashboard and minimal DNS upkeep.
Mailgun
Free, then from US$15/mo
- Free plan: 100 emails a day, 1 custom sending domain
- Basic from US$15/mo for 10,000 emails
- Foundation US$35/mo (50,000), Scale US$90/mo (100,000)
- SPF include adds 4 DNS lookups to the sending domain
Best for: Developers who want a clear API, inbound routing and a cheap starter plan.
Amazon SES
Cheapest per emailUS$0.10 per 1,000 emails
- Pay-as-you-go, no monthly fee on a-la-carte pricing
- New accounts start in a sandbox until AWS approves production access
- Easy DKIM with 2048-bit keys via three CNAMEs
- Needs AWS account skills; support is through AWS
Best for: Apps sending tens of thousands of emails a month, with a developer to set it up.
Sources: SendGrid Email API pricing, Mailgun pricing and Amazon SES pricing. SendGrid's site now lives on Twilio.com; the old sendgrid.com pricing page redirects there.
What each one costs at small-business volumes
Most SME websites send a few hundred to a few thousand emails a month: enquiry notifications, order confirmations, password resets. At that level the free tiers or entry plans cover you, and the cost difference only shows once an app starts sending in volume.
| Monthly volume | SendGrid | Mailgun | Amazon SES (a la carte) |
|---|---|---|---|
| Up to about 3,000 | Free trial (100/day, 60 days only) | Free (100/day) | About US$0.30 |
| 10,000 | Essentials, from US$19.95 | Basic, US$15 | About US$1 |
| 50,000 | Essentials, from US$19.95 | Foundation, US$35 | About US$5 |
| 100,000 | Pro, from US$89.95 | Scale, US$90 | About US$10 |
Amazon SES also offers plans. Since 21 July 2026, new SES accounts start on the Essentials plan (US$0.16 per 1,000 emails with deliverability insights), and you can switch to plain a-la-carte pricing at any time, according to the SES pricing page. Pro and Enterprise plans add a monthly fee of US$105 or US$500 per account per region.
DNS records each service needs
Every service needs DNS records on your domain before it can send as you@yourcompany.com without landing in spam. This is also where most setups go wrong. Our guide to SPF, DKIM and DMARC explains what each record does.
| Service | Records you add | Effect on your root SPF |
|---|---|---|
| SendGrid (automated security on) | 3 CNAMEs (return path and two DKIM keys) plus a DMARC TXT | None: SPF sits on the SendGrid subdomain |
| Mailgun | SPF TXT, DKIM TXT, tracking CNAME, MX for receiving | Adds include:mailgun.org if you send from the root domain |
| Amazon SES | 3 Easy DKIM CNAMEs; for a custom MAIL FROM, an MX and SPF TXT on a subdomain | None if SPF is on the MAIL FROM subdomain |
Details from the vendors' docs: SendGrid's domain authentication guide says automated security creates and maintains SPF and DKIM records for you, but it cannot be used if your DNS host rejects underscores in CNAME records. Mailgun's domain verification page lists v=spf1 include:mailgun.org ~all and MX records mxa and mxb.mailgun.org. Amazon SES's Easy DKIM signs every email with a 2048-bit key, and its custom MAIL FROM guide asks for an MX record pointing to feedback-smtp.region.amazonses.com and an SPF record with include:amazonses.com.
SPF lookup cost: why Mailgun on the root domain can break SPF
SPF allows at most 10 DNS lookups. We checked the live SPF records on 22 October 2026: include:mailgun.org costs 4 lookups (it nests three more includes), include:sendgrid.net costs 2, and include:amazonses.com costs 1 because it lists IP ranges directly.
If your root domain already includes Microsoft 365 or Google Workspace, a newsletter tool and a booking system, adding Mailgun there can tip you over the limit and make SPF fail for every message. Two fixes: send from a subdomain such as mg.yourcompany.com so its SPF lives on that subdomain, or use a service whose SPF sits on its own return-path subdomain. Our SPF too many lookups guide shows how to count yours.
Setup for WordPress, Shopify and custom apps
How you connect depends on the platform.
WordPress: install an SMTP plugin
Plugins such as WP Mail SMTP or FluentSMTP send WordPress mail through SendGrid, Mailgun or SES using an API key. Send a test email from the plugin, then submit your contact form and check the headers show DKIM pass.
Shopify: you usually don't need one
Shopify sends store notifications itself. Authenticate your sender domain in Shopify's notification settings instead of adding a third-party service.
Custom apps: use the API, not SMTP
Each vendor has official libraries. The API gives clearer error messages, bounce webhooks and suppression lists. Keep the API key in an environment variable, never in code.
Amazon SES: request production access
New SES accounts are in a sandbox: 200 messages per 24 hours, one per second, and only to verified addresses, per the SES production access guide. Request production access before launch.
Handle bounces and complaints
Turn on bounce and complaint webhooks or notifications, and stop sending to addresses that bounce. Sending services can pause accounts with high bounce or complaint rates.
If enquiry emails from your site already go missing, start with our guide to contact form emails not arriving.
Which one to choose
A simple rule of thumb for Singapore SMEs:
| Situation | Good fit | Why |
|---|---|---|
| Brochure site or WordPress contact form | SendGrid or Mailgun free/entry tier | Quick dashboard setup, low volume |
| Shopify store | Shopify's own email | Already included; authenticate your domain |
| Custom app with growing volume | Amazon SES | Lowest cost per email, scales without plan changes |
| Inbound email parsing (replies into an app) | Mailgun | Inbound routes, with 1 included on the free plan |
| Root SPF already near 10 lookups | SendGrid or SES | Their SPF sits on a subdomain |
Note that SendGrid's free option is a 60-day trial, not a permanent free plan, so budget for Essentials if you pick it for a live site.
Do it yourself or get help?
If you can edit DNS and install a WordPress plugin, a SendGrid or Mailgun setup takes an hour or two. Most of the work is adding the records exactly as shown and testing that DKIM and DMARC pass.
Before you go live
Our Emails Land in Spam fix (S$249) takes an inventory of every service sending as your domain, sets SPF, DKIM and DMARC correctly and monitors DMARC for 14 days. If you only need the domain and DNS records set up, Domain & DNS Setup is S$99. IT Sorted is a Singapore-based team of developers with over 10 years of experience; you pay upfront and brief us in writing.
Frequently asked questions
Per email, yes. As of October 2026 Amazon SES a-la-carte pricing is US$0.10 per 1,000 emails, so 50,000 emails cost about US$5. SendGrid Essentials starts at US$19.95 a month and Mailgun Foundation is US$35 a month for that volume. SES needs more technical setup and has no free permanent tier for new accounts beyond AWS credits.
As of October 2026 SendGrid's Email API pricing page lists a free trial that sends 100 emails a day for 60 days, with no credit card required. After that you need a paid plan, starting with Essentials at US$19.95 a month. Mailgun still lists a free plan with 100 emails a day and one custom sending domain.
Every new SES account starts in a sandbox for each AWS region. In the sandbox you can send at most 200 messages per 24 hours, one message per second, and only to verified addresses. You request production access in the SES console, describing what you send and how you handle bounces. Do this before your app goes live.
It can. The include:mailgun.org mechanism costs four DNS lookups, and SPF allows ten. If your root domain already includes Microsoft 365 or Google Workspace and other tools, you may exceed the limit and fail SPF. Sending from a subdomain such as mg.yourcompany.com keeps Mailgun's SPF off your main domain.
Usually not. A dedicated IP only helps with steady high volume, often tens of thousands of emails a month, because it must be warmed up and needs regular sending to keep a good reputation. Small websites and stores do better on the vendor's shared IPs with proper DKIM, SPF and DMARC.