When your messages land in the recipient's spam folder, the cause is almost always one of a few things: missing authentication, a mismatched From address, mail sent by a website script without authentication, or content that looks like bulk mail. Go through this checklist from top to bottom; the first items solve most cases.
Before you start
- Access to cPanel for the sending domain.
- A recent message that went to spam, ideally received in a Gmail account so you can view its headers.
Check authentication in Email Deliverability
- Open cPanel → Email → Email Deliverability.
- Each domain shows Valid or Problems exist for DKIM, SPF and PTR.
- Click Manage next to a domain with problems and use Install the suggested record for DKIM and SPF.
- If your DNS is not on MdmHost nameservers, copy the suggested records to your DNS provider.
The full setup, including a DMARC policy, is in SPF, DKIM and DMARC in cPanel.
Read the headers of a spam message
In Gmail open the message, click ⋮ → Show original. At the top you see:
| Line | Good result | If it fails |
|---|---|---|
| SPF | PASS | The sending server is not in your SPF record |
| DKIM | PASS with domain example.com | Signature missing or DNS record wrong |
| DMARC | PASS | From domain does not match the SPF/DKIM domain |
Send the right way from your website
Contact forms and shop notifications using PHP mail() often send as cpuser@server-hostname or with a From address of the visitor. Both look suspicious.
- Use an SMTP plugin or library (for WordPress, a plugin such as WP Mail SMTP) that logs in to a real mailbox like
noreply@example.comon port 465. - Make the From an address on your own domain. Put the visitor's address in Reply-To instead.
- Make sure the mailbox you send from exists.
Content and sending habits
- Avoid subject lines in capitals, many exclamation marks and words such as "free" or "winner".
- Include a plain-text part, not only a big image. Keep links to your own domain and avoid URL shorteners.
- Do not send to purchased lists. Bulk mail to old or unknown addresses causes bounces and complaints, and reputation drops for the whole domain.
- For newsletters add an unsubscribe link and send through a dedicated email marketing service.
- A brand-new domain has no reputation yet; start with normal one-to-one mail and increase volume gradually.
Check blocklists
If many recipients reject or junk your mail, the server IP or your domain may be listed. Check the domain and the shared IP (shown in cPanel → General Information) with a public blocklist checker. If the server IP is listed, open a support ticket; we handle delisting. If your domain is listed, find and stop the cause first, such as a hacked form or compromised password.
Warning: A compromised mailbox password is a common reason for sudden spam problems. If Track Delivery shows mail you did not send, change the password immediately.
Ask recipients to help
When your mail reaches spam, ask regular contacts to mark it as Not spam and add your address to their contacts. This trains their provider's filter for your domain.
