Most folks take email delivery for granted. You hit send and assume the recipient will get it. That's usually a good assumption for personal email, but when you move beyond single emails, delivery gets decidedly less certain. Things like IP reputation, domain reputation, or simple configuration mistakes can completely derail your delivery.
Fortunately you don't have to sit around just wondering whether your business' emails are being delivered. The internet is awash in helpful tools and techniques for monitoring email delivery. One of the keys though is to move beyond depending on your email service provider (ESP). ESPs can monitor delivery to a degree and, in many cases, even tell you what, if anything, is going wrong. However ESPs can't monitor everything about your system and may not always be able to diagnose your delivery problems.
To help you start looking here are a few services you can use to track and measure delivery rates and diagnose potential problems.
The first thing to keep in mind with email problems is Occam's razor—your delivery problems often have a very simple cause and solution. It often won't be what many people assume, that the largely inscrutable spam filtering processes of ISPs or Google is out to get them. The problem is often much simpler than that. Even if it is an ISP out to get you, make sure you've eliminated the other possibilities first. Always start with the simple.
Regularly Review & Monitor DNS records #
DNS records? Yes, DNS. It's so simple and so obvious we often forget how important it is. When you’re working at a company using several services, possibly several dozen domains, redirects and other possibly complicated configurations, it’s possible, even likely that the correct DNS configuration can get screwed up when someone makes an update. If you're not monitoring the SPF, DKIM, and DMARC configuration in your DNS for your delivery system you can end up with emails failing to be delivered. It's a simple problem with a simple fix, but one you won't know about if you aren't actively looking.
If you’re using Postmark, we’ll automatically monitor your DNS on a regular basis to ensure everything is configured. If we notice any issues, we’ll let you know. In addition to the built-in monitoring, here are some other tools for monitoring your DNS records for email configuration issues:
Monitor IP address blacklists and IP/domain reputation #
Starting with the very simple, make sure that your domains and IPs (or your ESP's IPs) haven't ended up on a spam blacklist. If you’re using a service that has you on shared IPs, your delivery can be blacklisted simply because one of your neighbors on the IP address sent spam.
You’ll also want to keep an eye on your IP and domain reputation which is an increasingly important signal to ISPs. IPs are easy to change, but if your domain gets a bad reputation, that’s going to be an uphill climb.
There are dozens of services out there that can perform some combination of checking and monitoring this for you. With hundreds of blacklists out there to keep track of you'll probably want to pay for a decent service that regular scans all public lists for any mention of your IPs and domains.
Some great tools for monitoring IP address blacklists as well as keeping an eye on your domain reputation:
Track Real Delivery Times with MailHandler #
Once you know your DNS is set up correctly and that you're not on any blacklists the next place to look is delivery speed. How long does it take from the time you hit send to the time that email ends up in your customer's mailbox? You're probably familiar with this problem from the other side—nothing is more frustrating than that password reset form that claims it just emailed you but you know there's nothing in your inbox. That's a problem with delivery speed.
To help you track and monitor delivery speed, we built MailHandler, a tool you can use to send and retrieve emails and at the same time get details on how long these operations took. MailHandler is available as a Ruby gem and can send email through the Postmark API or by standard SMTP protocol. More importantly it also allows checking email delivery by IMAP protocol.
To get the most out of MailHandler, you’ll want to set up several accounts with the key services you want to monitor delivery for. In most cases, that’s likely to be Gmail, Yahoo, Hotmail/Outlook, AOL, and Apple. After you set up these accounts, you can then set up a cron job to use MailHandler to regularly send emails to these accounts and then login to see how long it takes the email to reach the inbox. This may sound like overkill, but it’s a key strategy for getting a good estimate of the real time that it takes for an email to be delivered.
Then you can either save snapshots of the times to a database for charting and monitoring. And you can set up alerts to notify you if delivery takes more longer than a pre-specified threshold.
Success! Delivered. Or Not. #
Once you've got a good system set up for monitoring your sending system and you know your emails are being sent in a timely manner it's time to move on to the last mile so to speak—the customer's inbox. When we say an email is "delivered" what we really mean is that was accepted by your customer's mail server (or service). Whether or not it was then placed in your customer's inbox is an entirely different problem that we'll tackle in the next installment.