Recently a number of emails sent from one of our domains was getting tagged as spam by the receipent. Here are some things I learnt trying to fix this problem...
Check for DNS Issues
According to Wikipedia, there are a number of anti-spam techniques and in my case, I first checked the three that relate to the Domain Name System (DNS) configuration:
-
The email server must have a DKIM (DomainKeys Identified Mail)
TXT
record configured, by publishing the sender’s public key in the DNS (v=DKIM1;...
), “to detect forged sender addresses in emails (email spoofing). (quoted from Wikipedia) -
And, a SPF (Sender Policy Framework)
TXT
record must be configured (v=spf1...
) for the “receiving mail server to check during mail delivery that a mail claiming to come from a specific domain is submitted by an IP address authorized by that domain’s administrators” (quoted from Wikipedia). -
And ideally, the Reverse DNS (rDNS)
PTR
record should be correctly set up.
In addition, Google Mail (GMail) may also perform additional “domain reputation” verification, as described by Google Postmaster Tools:
-
You may be asked to Verify your domain with a
TXT
record by setting it to a Google providedgoogle-site-verification=...
key. -
Or be asked to Add a
CNAME
record to verify domain ownership by setting it to the given label / host and destination / target values.
To understand more about Google Postmaster Tools, I read this primer by Mailgun, Google Postmaster Tools: Understanding Sender Reputation.
Configuration
Performing DNS changes will depend on your hosting provider. Some examples below:
With CPanel v92, you can verify and fix anyDNS entry issues in the Email Delivery page:
Or on older software you can manually enter all this DNS entries if you knew what to enter, e.g. for Plesk:
If all else fails, then the hosting provider must make the changes.
Test
To check if there are issues with DKIM, SPF, blacklists, etc., I used Mail Tester, and after fixing the issues, the score went from 4 to 7.8 to 10.
Check Blacklists
Apart from Google’s method of marking spam, your domain or IP may be on email blacklists too.
For a shared server, being on a blacklist or having a bad / low “IP reputation” with Google could potentially be a result ofother tenants on your server spamming out emails... If this is the case, then there is not much you can do except to move server or provider, or get a dedicated IP address - which may involve getting a Virtual Private Server (VPS) instead of a shared host.
On a final note, one may need to check with the recipient too - if they have a client-side spam (Bayesian) filter that has been “trained” to mark certain mails as spam, then they need to do the opposite and mark as “not spam” until re-trained. For example, a shared server provider might automatically enable SpamAssassin, or users could install a spam filter or proxy on a PC too.
Test
Among its tools, MXToolbox has one called Email health that checks a domain against a huge number of email blacklists.
Conclusion
I hope this helps someone, as we spent days agonizing over this, when the tools above would have helped us identify the issue quickly. We even considering moving hosting providers or subscribing to email services instead!