Transactional email providers

I'm directly responsible for the Direct email sending in Ghost's core, which means that instead of the server trying to figure out whether there's sendmail installed and using that, it will just hurl the message at the recipient’s email server. This of course runs the risk of the server not accepting the message for a very large number of reasons, but mostly it boils down to the notion that the server thinks it's spam, and rejects / filters it.

I’ve had several conversations about email on WordPress on IRC, Facebook and with our clients as well. WP uses PHP, and PHP uses sendmail unless otherwise configured (which means most of the time). Same problem presents itself.

So how to ensure emails do get delivered? Well, use an SMTP server or a dedicated delivery service.

SMTP

This is reusing your own / business's email address for the purposes of sending emails. If you have a @gmail.com address, you can use the smtp settings for gmail.

This method has limitations. Most email services assume that you're an individual, and will only let you send so many emails. Trying to send emails to all 10,000 users on your site will just not happen.

Transactional email providers

There are 4 that I know of: Amazon SES, Mailgun, Sendgrid, Mandrill. They specialise in high volume email sending, they all work roughly the same way: sign up, you get given credentials, you put those in to your email sending application, and you’re done. Because of this, the only distinction between all of them, to me, is price at the moment. Unless someone points out their unique strenghts / weaknesses. Scroll further to see the free plans.

Sending 40,000 emails a month would cost:

  • Amazon SES: $4 + data transfer + attachment prices. Or free if you have an EC2 / Beanstalk instance. 20,000 would only cost you about $2 + data transfer + attachment prices. It's $0.10 per thousand. (Amazon SES pricing and more info)
  • Mailgun: $15. The first 10,000 is free, and the rest is charged at $0.00050 per email (or $0.50 per thousand). If you only send 20,000, you would be billed $5. (Mailgun pricing)
  • Sendgrid: $9.95 buys you 40,000 email credits per month. Be aware that this is pro-rated, so for example if I try to sign up today (27th September), I get a pro-rated credit volume of 5,333, which is roughly the time until the end of the month. You also pay for the package, so even though you only send 20,000 emails, half of your credits will be wasted. Newsletters and marketing emails are also not included here. (Sendgrid pricing and more info)
  • Mandrill: $5.60. Mandrill is from the same people who made MailChimp, so they know email deliverability. The first 12,000 is free, the rest is priced at $0.20 per thousand. What you use is what you pay for, so 20,000 emails would cost you $1.60.

Free plans

Sengrid has a free plan, where you're allowed to send 200 emails a day.

Mailgun offers signup without payment info, where you're able to send the free tier a month. That's 10,000 emails.

You can sign up for Mandrill without payment info, and send 12,000 emails a month.

tl;dr

Use Mandrill. If you're on Ghost and want to configure email, use Mandrill. If you're on WordPress, and need to configure email, get the Mandrill plugin, and use Mandrill.

The Ghost snippet you need:

mail: {
    transport: 'SMTP',
    options: {
        service: 'Mandrill',
        auth: {
            user: '<your Mandrill email address>',
            pass: '<a valid Mandrill API key>'
        }
    }
}

Get these from here: Mandrill settings (after you sign in to Mandrill obviously).

Disclaimer: I am not paid by anyone to write these. Wrote this for easy reference when this topic comes up again.

EDIT: I messed up Amazon's prices. No idea why. Had a feeling $4k was a bit over the top. Still the most expensive option though. Fixed now.

EDIT2: I messed up the fix to Amazon’s prices. It’s $4, not $40. Sorry about that. And thank you, Dave for bringing this to my attention. Even though Amazon is the cheapest, there are still unknown costs with data transfer. I’d still go with Mandrill.