Key facts
- SPF lists which servers are allowed to send email for your domain.
- DKIM adds a digital signature that proves the message was not changed and came from your domain.
- DMARC tells receiving servers what to do when SPF or DKIM fail, and sends you reports.
- A domain can only have one SPF record; two SPF records cause SPF to fail.
- Google and Yahoo have required SPF, DKIM and DMARC from bulk senders since 2024.
- Website contact forms that send as your domain from the web server often fail SPF unless the server is included.
The main reasons emails go to spam
- No email authentication. Missing or broken SPF, DKIM or DMARC records are the most common cause for small businesses.
- Two SPF records. Adding a second SPF record when you add a new service, instead of merging them, makes SPF fail completely.
- Website mail sent badly. Contact forms and shop order emails sent with PHP mail() from the web server, pretending to come from your Microsoft 365 or Google address, often fail checks.
- Poor sending reputation. A shared server or IP address that has sent spam, or a compromised mailbox, can drag you down.
- Blocklisting. Your server IP or domain is on a public blocklist.
- Content and habits. Link-heavy messages, image-only emails, URL shorteners and sending to old lists raise spam scores.
How to check what is wrong
Work through these checks before changing anything.
- Look at the message headers. Send an email to a Gmail account, open it, choose "Show original" and read the SPF, DKIM and DMARC results. Each should say PASS.
- Look up your DNS records. Check the TXT records on your domain for one record starting v=spf1 and one at _dmarc starting v=DMARC1.
- Check who sends mail as you. List every service: your mailbox provider, website, newsletter tool, CRM, invoicing software. Each needs to be covered.
- Check blocklists for your sending IP using a reputable blocklist checker.
How to fix it
- Publish one SPF record that includes every legitimate sender, for example your mailbox provider and your newsletter tool, ending in ~all or -all.
- Turn on DKIM in each service that sends for you and add the DNS records it gives you, usually CNAME or TXT records.
- Add a DMARC record starting at p=none so you receive reports, then move to p=quarantine once everything passes.
- Send website mail properly. Configure your CMS to send through authenticated SMTP using a real mailbox, rather than the server's PHP mail().
- Fix any compromised accounts, change passwords and request removal from blocklists once clean.
Our step-by-step guide How do I set up SPF, DKIM and DMARC? shows example records.
Where your email is hosted matters
Many small businesses use Microsoft 365 or Google Workspace for mailboxes and keep the website on separate hosting. That works well, as long as DNS is set up so both are authorised. Others keep email with their website: dijitul Complete Hosting includes 10 POP3/IMAP email accounts on your domain, with SPF, DKIM and DMARC set up for them. If you are deciding where mail should live, see email hosting vs Microsoft 365 and our email hosting page.
Whichever you choose, keep a simple list of every service allowed to send as your domain, and review it when you add a new tool. Newsletter platforms, booking systems, accounting software and CRMs all send mail that can fail authentication if they are not added to SPF and set up for DKIM. If you send large marketing campaigns, use a separate subdomain such as news.example.co.uk, so a problem with a campaign does not affect everyday business email.
How dijitul helps
dijitul Complete Hosting includes Cloudflare DNS set up and managed for you. That means we can add and merge your SPF record, publish DKIM and DMARC for your mail provider, and configure your website to send mail through authenticated SMTP. It costs £1 a day + VAT (£365 a year + VAT), with managed hosting, 10 POP3/IMAP email accounts, daily backups kept for 14 days, free SSL and UK-based support. If you use Microsoft 365 or Google Workspace instead, we set up the DNS for those. Order Complete Hosting or call 01623 650333 and we will look at your records with you.
Frequently asked questions
Why are my emails going to spam when I'm not sending spam?
Spam filters judge proof as well as content. If your domain lacks SPF, DKIM and DMARC records, receiving servers cannot confirm the message really came from you, so they treat it with suspicion. A shared server with a poor reputation, or a website sending mail as your domain without authorisation, can also push genuine emails into spam.
What is the quickest fix for emails going to spam?
Check that your domain has exactly one valid SPF record covering every service that sends mail for you, then turn on DKIM in your mail provider and add its DNS records. Add a DMARC record at p=none to start receiving reports. These three steps fix most small business deliverability problems.
Why do my website contact form emails go to spam?
Contact forms often send using the web server's PHP mail() function while claiming to come from your main business address. Your SPF record does not list the web server, so the message fails authentication. The fix is to send form mail through authenticated SMTP using a real mailbox, or to include the server properly in SPF.
Can I have two SPF records?
No. A domain should have only one SPF TXT record. If there are two, receiving servers treat SPF as a permanent error and it fails. When adding a new sending service, merge its include into your existing record, for example v=spf1 include:first.example include:second.example ~all, instead of creating a second record.
How long does it take for SPF, DKIM and DMARC to work?
The DNS changes usually take effect within minutes to a few hours, depending on the record's TTL. Your sending reputation can take longer to recover, often days or a few weeks of clean, authenticated sending. Keep DMARC at p=none at first and read the reports before tightening the policy.
Can dijitul fix my email DNS records?
Yes. dijitul Complete Hosting includes Cloudflare DNS set up and managed for you, so we can add or merge SPF, publish DKIM and DMARC records for your mail provider, and set your website to send through authenticated SMTP. It costs £1 a day + VAT with UK-based support. Call 01623 650333.
Related
Set it up and forget about it
Managed hosting, Plesk, Cloudflare DNS, daily backups and your domain for £1 a day + VAT. We move your site for you.