Troubleshooting email delivery issues
We've expanded and updated this post into a full guide for troubleshooting email delivery.
From time to time our customers email us asking to troubleshoot delivery issues to an ISP (Gmail, Yahoo, etc). The steps to troubleshoot the problem are usually the same no matter what the cause. I’d like to share a few tips so you can do this any time you run into an issue.
In most cases, delivery issues come up for three reasons: Infrastructure, Sending Practices and Content.
When it comes to infrastructure, Postmark has most of it covered. That’s why people use our product to deliver transactional emails. We take care of keeping our IPs clean, throttling to the ISPs, properly handling bounces and spam complaints and keeping up with things like DKIM, SPF and DMARC.
While Postmark takes care of most of it, there is one important step that you can take to improve delivery.
Make sure that SPF and DKIM are valid.
In Postmark, this means your Sender Signature is verified for both SPF and DKIM. We check these on an ongoing bases to make sure you stay compliant.
You can also check if they pass by sending an email to Gmail and viewing “Show original” option. You should see two headers like this:
Authentication-Results: spf=pass dkim=pass
For a more advanced review of your authentication, I highly recommend Port25’s authentication tool.
Sending Practices #
Infrastructure plays a huge role, but if you are sending email to people who don’t want or expect it, you’re going to have delivery issues. Having good sending practices is the priority to having your email get to the Inbox.
Here are some ways you can review your sending practices in Postmark:
What is your bounce rate?
A good bounce rate should be well under 5%. If you notice bounces near or above that it’s very likely that either people are giving you bad emails or you are sending to old and outdated addresses. Try to figure out why the rate is high and work to lower it.
What is your spam rate?
It might sound crazy to some people, but most transactional email should not have spam complaints. If you do, there should only be a few. We’ve seen cases that baffle us, but it’s not the majority. Your spam rate should be less than 0.10%. Yes, that is 1 complaint in 1,000 emails sent. If it’s above this you’ve probably already heard from us. The hard truth is that these people didn’t expect or want your email and you need to figure out how to avoid it from happening. I realize it is strict, but these rules are why Postmark has some of the best inbox rates in the industry.
If you are getting spam complaints for seemingly legitimate emails you may want to review the practicality of the message. For instance, we had a customer who was getting high spam for their welcome emails. Their users signed up and wanted the service, but still marked the message as spam. After reviewing the process, we noticed that this service was really only expected to be one time use. Getting a welcome email for something you may only use once is unessessary.
You would be amazed by some of the content that sends emails to the spam folder. Everything from a phone number to certain mailing addresses. Content is one area that is extremely tricky to troubleshoot. Here are some things you can do to test and improve your content.
Check the Spam Score of your content
Grab the email headers and then run it through our Spam Check tool.
You should have a spam score of under 5. If you are sending with Postmark your score will most likely be a negative number, which is even better. This is because we are on whitelists and listed on accreditation services.
Write compliant HTML
If you are sending HTML, make sure it is compliant and well written. Be conscious of using too many large images and keep it simple. It’s well known that some ISPs will reject emails due to poorly written code.
Read Eugene’s excellent blog post about designing modern HTML emails.
Avoid URL shortening services
We’ve seen many emails get blocked because URL shorteners like Bitly were used in the content. Since URL shorteners are used by spammers, the URL or source IP address of the services are frequently added to block lists. Always try to use your own domain or the url of a service you know is not used by spammers. In addition, some IPs on cloud services like AWS can be on blacklists, so you always want to check to be sure.
We recommend using MX Toolbox blacklist tool. Here is a scan showing Bit.ly on Spamhaus.
Test, test, test
After we’ve gone through all of these steps, the last effort is just to test your content. If you have access to an address at the ISP where you have delivery issues, try alternate versions of the content. If the email is HTML, try sending plain text first. From there, it’s trial and error with removing content to see what happens.
This is where we find the strangest of behavior, like Gmail blocking an email due to a phone number. This can happen because Gmail uses algorithms based on past experience (adaptive filters). It’s possible that some combination of that phone number was found in an email that the recipient previously marked as spam.
Email delivery is both an art and a science. We work hard to cover as much as possible so your emails get delivered. For the rest, these steps should help if you ever have an email that is missing or in the spam folder. As always, we are here to help, so never hesitate to reach out and we’ll troubleshoot as well. We occasionally run inbox checks for customers to troubleshoot content issues to the majority of ISPs. Whatever it takes, we’ll try to figure it out.
Further reading #
Very closely related to this, there is a great Q&A from Spamhaus CEO Steve Linford. If you have some spare time I highly recommend reading all six sessions:
- Spamhaus Q&A Part 1
- Spamhaus Q&A Part 2
- Spamhaus Q&A Part 3
- Spamhaus Q&A Part 4
- Spamhaus Q&A Part 5
- Spamhaus Q&A Part 6