Recipients find your emails in Spam: causes and fixes
PrintWhen people tell you your messages keep showing up in their Spam or Junk folder, the reason is nearly always one of three things: your domain does not prove who it is (SPF, DKIM, DMARC), the IP address the message leaves from has a poor reputation, or the message itself reads like unsolicited mail. This guide helps you work out which one applies and what to change.
What the receiving server looks at
Every incoming message is scored by the recipient's mail server on several signals:
- identity: whether the sending server is allowed to send for your domain (SPF), whether the message carries a valid signature (DKIM), and what policy your domain publishes (DMARC);
- reputation: whether the IP address or domain is listed on a blacklist or has recently sent mail that people reported;
- content: the subject line, links, how much is text and how much is images, and attachments.
Large providers such as Gmail and Outlook.com are getting stricter about authentication. A domain without working SPF and DKIM can be filtered even when the message is completely genuine.
Quick diagnosis
- Go to mail-tester.com and copy the test address it gives you.
- Send it a normal message from the mailbox and mail program you use every day. A blank message that just says "test" tells you much less.
- Go back to the page and read the report: SPF, DKIM and DMARC results, the blacklist check and the notes on your content.
- In cPanel, open Email, then Email Deliverability. Each domain is shown with its status, so you can see whether cPanel has found a problem.
Typical causes and what to do
- SPF or DKIM is missing or wrong. In Email Deliverability, click Manage next to the domain and apply the values cPanel recommends. See setting up SPF and DMARC and managing DKIM records.
- There is no DMARC record. Add a TXT record named
_dmarc, starting with the policyp=none. The SPF and DMARC guide walks you through it. - Your website form sends "as" the visitor. If the form puts the visitor's Gmail address in the From field, the message fails the checks, because our server is not authorised to send for gmail.com. Use a real mailbox on your own domain, created in cPanel, as the sender, and put the visitor's address in Reply-To.
- The IP address is blacklisted. On shared hosting one IP address serves several accounts. Open a ticket and attach the full headers of a message that went to Spam so we can look into it.
- The message looks like an advert. Capital letters in the subject, rows of exclamation marks, lots of links, shortened links, or a message that is a single image. Write plainly, with real text and few links.
- Bulk sending. A hosting account can send at most 400 messages per hour, and unsolicited mass mail is forbidden by the TopHost Terms and Conditions. For newsletters to a large list, a dedicated newsletter service is the better tool.
When your DNS is hosted somewhere else
If the domain does not use the TopHost nameservers (ns4.tophost.md and ns5.tophost.md), the Repair button in cPanel changes nothing, because the live DNS zone is elsewhere. Copy the values cPanel shows into the zone at that DNS provider. With Cloudflare, keep the mail records (MX and the mail record) set to "DNS only", not proxied.
Worth knowing
- DNS changes usually take effect within a few hours and at most about 24 hours. A damaged reputation recovers more slowly, over days or weeks.
- Ask a few recipients to mark your message as "Not spam". Their provider takes that into account.
- If only one provider files your mail as spam, its filter is the cause. Ask the recipient for the full message headers (in Gmail, "Show original") and send them to us in a ticket.