Troubleshooting email delivery issues
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. We’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.
Infrastructure
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.
When it comes to infrastructure, there is one important step that you can take to improve delivery.
Make sure that DKIM is valid and you have a custom Return-Path set up.
In Postmark, this means your Sender Signature/Domain is verified for both DKIM and Return-Path. 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
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.
The simple rule: Only send email to people who are expecting it and provide a simple way to opt out.
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.
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.
Content
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.
Sending streams and subdomains
If you’re sending transactional emails, be sure to associate the mail stream with your main organizational domain using custom DKIM and Return-Path.
If you’re sending promotional/bulk emails, be sure to separate the mail stream with a unique subdomain using custom DKIM and Return-Path. Subdomains are the best way to keep your branding consistent while protecting the deliverability of your various mail streams.
This helps keep your sending reputation separate across those different types of sends. That way, your transactional messages won’t be impacted by the deliverability and engagement of your promotional/bulk type messages.
By not keeping these reputations separate, any low or negative engagement from a future promotional/bulk invitation could affect the deliverability of transactional messages that keep your existing customers from being able to use the product.
To warm up your subdomains, you can do this by sending small amounts of email to your most engaged users, so this will build your subdomain reputation much more quickly.
Mismatch of URLs
Whenever you include an outside domain to your email for your image sources or link URLs, you start to take on the reputation of that domain with the ISPs mail filters.
It’s always important to ensure the URLs of your image sources and link URLs in your message match the FROM email address domain.
The mismatch of URLs in your messages can cause deliverability issues, and you increase your chances of spam. Many spammers and phishers will send from one domain while the links in your messages use a different domain.
For example, the best way to get around the image URLs would be to set-up a CDN to host the images on your own domain.
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’re known to run inbox checks for customers to troubleshoot content to any ISP. Whatever it takes, we’ll try to figure it out.