I often say that email is the “glue” that holds the Internet together. But it’s like the worst possible glue ever. It’s underlying technology is convoluted, complicated, insecure, tedious, sloppy, and archaic. In a nutshell: email sucks but it’s pretty much essential for working online. So what do you do if email is not working, like when you send an email but it never arrives? It can be very frustrating and difficult to figure out what went wrong. To help get you back on track, this article provides a simple guide for troubleshooting some of the most common email issues.
Troubleshooting email is tricky because there are many variables involved, so there are a LOT of things to check, including:
- Incorrect email infos (typos)
- Anti-spam rules, firewalls, blacklists, etc.
- Server settings, configuration, and software
- Rules/scripts/filters set up by hosting companies
- Interference from other scripts and plugins
- Interference from the theme template
- Software misconfigration
- Network issues
..and so forth. With so many factors involved, in most cases it’s virtually impossible to just “guess” why email functionality may not be working. If your email is not being sent and/or received, you can follow the steps provided in this guide until the culprit is discovered. Yes troubleshooting email issues can be tedious and time-consuming, so we’ll proceed with some of the easiest things to check, and then work our way from there.
Step 0: Gather data
Before trying to figure out why email isn’t working, take a few moments to gather and organize all relevant information. For example, it’s good to know the following:
- The “From” email address
- The “To” email address
- Any Carbon Copy (Cc) addresses
- Any Blind Carbon Copy (Bcc) addresses
- The email client or script used to send the email
- The email client or script used to receive the email
Knowing which variables involved is half the battle. Whenever I do any sort of
troubleshooting, I keep a simple text file and make notes of everything I do, every step, detail, result, and so forth. That way, if and when the issue happens again, I can refer to my notes and dive right in.
Step 1: Check the spam bin
First and foremost, check if spam is the culprit. If emails are not being received, here is a list of things to check:
- Spam folder
- Trash folder
- Spam settings
- Firewall/blocking settings
- Any other anti-spam settings that may be in play
The assumption for this step is that email is getting flagged as spam or blocked due to firewall/filtering/blocking rules. So we are assuming that the email is actually being received by the client, but is not appearing in the Inbox. This, in my experience, is the #1 issue that users have to deal with when working with email. Emails getting blocked or flagged as spam is very common especially with free, 3rd-party email services like Gmail, Hotmail, Yahoo, and so forth. Such services really go overboard with their anti-spam rules, which unfortunately blocks a LOT of legitimate email.
If you discover that your email is getting blocked or spammed, you have a couple of options:
- If you have control over the receiving client, adjust the settings (e.g., lower the spam threshold, add the address to the permanent “allow” list, change settings, etc.)
- If you don’t have control over the receiving client, the best way to get a message through is to re-send using an alternate email address
So if you send an email to a client and it is not received, try sending again using a different email address. The trick here is to use a completely different address. For example, if the original address is a domain-based address such as
email@example.com, try resending from a Gmail account. Or if the original email is sent from a Gmail account, try sending via a domain-based address. If you don’t have access to any 3rd-party email services, you can either create a new account or just use an address from a different domain. So instead of sending via
firstname.lastname@example.org, you would try sending from
If you discover that your email is blocked or flagged as spam, it may be because the address has been added to a spam blacklist. There are many such blacklists out there, for example mxtoolbox.com is one of the more “popular” ones. So take a few moments to check a few blacklists to see if your address, domain, or IP address is listed. If it is, then most public blacklists provide a way to remove the address (warning: it can be a royal pain, and there are no guarantees — just another reason why email really sucks as the Web’s primary channel of communication).
Step 2: Check the email address
If you are sure that the expected email is not getting blocked or flagged as spam, the next thing to check is whether or not there is any issue with the email address itself. Here is a list of things that can go wrong at the “address” level:
- Incorrect “To” email address (e.g., typos)
- Incorrect “From” email address (e.g., typos)
- Non-existent or unavailable email account
- Blocked email account (e.g., some countries actually block all emails from other countries)
The big one here is an incorrect email address. Typos happen all the time, so make sure to triple-check both “To” and “From” addresses to make sure they are correct. For non-existent and/or blocked email addresses, it may be necessary to find an alternate channel of communication (e.g., Twitter, Facebook, chat forum, etc.).
Step 3: Check the email client
Next, if you have access, check the email client that is being used to receive the emails. Is it working? Are there any errors or known bugs? A couple of quick searches should reveal any known issues that may be affecting the particular client and version that you are using. It may also help to perform a similar investigation of the email client being used to send the messages; if there is a bug, sent messages may contain errors that prevent them from making it to their destination.
If you suspect that the issue is with the email client, the easiest way to test is to try again using an alternate client. For example, if you are using Thunderbird, try sending/receiving again using some other email app or service.
Step 4: Check your plugins
If you are using WordPress or some other CMS to send and receive email, the next step is to troubleshoot your plugins. For example, emails can be sent using the following types of plugins:
- Contact form plugins
- Membership plugins (like for registration)
- Forum or chat plugins
- Plugins that send email alerts
- E-commerce and shopping cart plugins
- The CMS itself (registrations, passwords, etc.)
So if the email you are not receiving is being sent from any such plugin, chances are good that there is an issue with the plugin itself. If you suspect that is the case, you can troubleshoot, or you can contact the plugin developer for help. Note that even if you are using a plugin (or theme) to send email, it doesn’t automatically mean that that’s the cause of the issue; in many cases, the plugin is working properly, but something else is interfering with email delivery.
If you think it’s the plugin at issue, here are some things to check:
- Plugin settings
- Other plugins (e.g., security plugins, caching plugins, etc.) that may be interfering/blocking the outgoing email
- Typos in the email address
- Server configuration
- Site error/debug logs
Again, if you suspect a plugin is the problem, it is best to do some basic troubleshooting to determine the culprit.
Step 5: Check the server
The next thing to investigate is the server. Servers frequently employ their own set of anti-spam, firewall, throttling, and blacklist rules. These “features” mean well, but they also result in a LOT of false positives. Here are some things to look for:
- Check server settings (Email settings, firewall rules, etc.)
- Check the server’s DNS, MX, and Zone records
- Check the server’s “mail queue” to see if it contains any emails
- Check the server error logs
- Check the server documentation (hosting rules, email policy, etc.)
An easy way to rule out any server issues is to try the following tests:
- Try sending the email from a different site on the same server
- Try sending the email using a different plugin on the same site
If you need help with any server-related tasks, ask your web host for help.
Step 6: Check the network
After ruling out all of the previous issues, the next thing to check is the network itself. This step is best handled by experienced users who understand how the Internet works behind the scenes. But if you’re a one-person shop and handle your own troubleshooting, here are some informative resources that should help:
- Using The Traceroute Command
- Network Administration: The Tracert Command
- Visual Trace Route Tool
- MXtoolbox Supertool
- How To Trace an Email Address
- Email Header Tracer
- Trace Email Tool
The idea here is to use available methods and tools to diagnose whether or not there is any disruption or blockage on the network (i.e., the path from your machine to the destination on the Internet). These tools can help make it happen.
Here are some further resources that may help with troubleshooting email issues.
If you are using WordPress, there are some great plugins for checking and/or establishing proper email functionality, for example:
And if you are looking for a solid contact form for WordPress-powered sites, check out my latest WP plugin, Contact Form X »
Also here is a useful guide provided by MailChimp. It explains more in-depth some of the reasons why email delivery can fail. Worth a read.
And, if you are using WordPress, you may want to check out The Art of Troubleshooting WordPress.