Postmark is awesome for transactional emails

Jacob Allred
#web-dev

Update 2/20/14: I’ve switched to SendGrid. I’ve been using them for a few weeks and am completely satisfied!

Update 10/31/13: Postmark has terminated my account because they aren’t comfortable with the Fake Name Generator. I’m disappointed that they would make this decision, and I can no longer recommend their services.

The Fake Name Generator lets people order (for free!) large lists of fake names, addresses, and other information. It can take a few minutes to generate the data files, so users are required to give me their email address so I can send them an email when their order is ready.

This has caused me a few problems:

  1. Order fulfillment emails sometimes go to spam. So people enter more orders, which takes up server processing time, and they still don’t get them because they never check their spam folder. Or they put in a support request, which means I’m having to spend time chasing the issue.
  2. People enter fake email addresses. This one drives me crazy. There isn’t any way to give them their order if they don’t give me a valid email address, yet people will put in a dozen orders using bogus email addresses that ultimately bounce back to my inbox.

To solve this, I’ve done a few things.

First, instead of sending email directly from my server, I’m using Postmark, a service that is specifically designed for transactional emails. Postmark is amazing. With just a few clicks I had a virtual mail server configured with DKIM, SPF, and SenderID. It uses an API instead of clunky SMTP to accept emails. This was easy to integrate using some free code I found online. Because it is only used for transactional emails, deliverability is extremely high.

It also comes with a few additional perks. It lets me see every email I send out, so if I do get a support request, I don’t have to ask anyone to forward me emails or links or wonder if the email was actually delivered.

Postmark helped me solve the bounce problem, too. It lets you use a hook URL to handle bounces. I set up a simple script that grabs the email address for any bounced email and blocks that email from ever ordering from my site again.

There are a lot of alternatives to Postmark out there and some are considerably cheaper, such as Amazon SES and SendGrid. I did a fair amount of research before picking a vendor. To be honest, Postmark just seems better. They are more reliable, they have more features that I’ll actually use, their pricing is pay-as-you-go (no monthly minimums), and their API is lightweight and easy to use.