A quote that goes missing, an invoice found in the junk folder: when your emails go to spam, the reason is written in the headers of the message that arrived. Three records on your domain, SPF, DKIM and DMARC, prove to mailbox providers that your mail really comes from you. This guide sets them up in order.
Authentication-Results line gives the SPF, DKIM and DMARC verdict._dmarc.your-domain.com, starting with p=none and a reporting address.p=quarantine, and finally to p=reject.Every mailbox provider that receives an email checks where it came from and records the result in the message headers. To read it, send an email from your business address to a Gmail address, open it, click More (the three dots) and then Show original. Look for the Authentication-Results line:
Authentication-Results: mx.google.com;
dkim=pass header.i=@your-domain.com header.s=google;
spf=pass (google.com: domain of hello@your-domain.com designates 203.0.113.25 as permitted sender) smtp.mailfrom=hello@your-domain.com;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=your-domain.com
| What you see | What it means | Where to go next |
|---|---|---|
spf=fail or spf=softfail | The server that sent the message is not in the domain’s SPF list. | 1. SPF |
spf=permerror | The SPF record is invalid: two records on the same domain, or more than ten DNS lookups. | 1. SPF |
dkim=none or dkim=fail | The message is not signed, or the key published in DNS does not match the signature. | 2. DKIM |
dmarc=fail | Neither SPF nor DKIM validates the domain of the sender address the recipient sees. | 3. DMARC, and the website form |
Everything reads pass | Authentication is in order: the cause lies elsewhere, in reputation, volume or content. | When everything passes |
These three settings are unevenly spread. Among the 1,730 SMB domains that receive mail in our monthly survey, 96% publish SPF, and 71% have no DMARC policy that acts on the result.
SPF is a TXT record at the root of your domain. It starts with v=spf1, names the servers allowed to send for the domain, and ends with what to make of every other server. The two most common email providers publish the value to use:
v=spf1 include:_spf.google.com ~all
v=spf1 include:spf.protection.outlook.com -all
Every other service sending with your domain goes into that same record: newsletter tool, invoicing software, CRM, and your website server if its forms send mail themselves. Each service documents the include: to add; a server is declared by its address, with ip4::
v=spf1 include:_spf.google.com ip4:203.0.113.25 ~all
v=spf1 make SPF invalid (permerror): merge them into one.include, a, mx, ptr, exists and redirect counts, including the ones nested inside your includes. Past ten, SPF is invalid. ip4 and ip6 do not count.-all declares every other server unauthorized, ~all flags it without calling it illegitimate. Google suggests ~all in its documentation, Microsoft suggests -all. Once DMARC is in place, its policy decides what happens to a message that fails.DKIM adds a signature to every message, which the recipient’s provider checks against a public key published in your DNS, under a name shaped like selector._domainkey.your-domain.com. The signing happens at the service that sends; your part is to publish the key it gives you.
google and Google recommends a 2048-bit key. Publish the google._domainkey TXT record, then come back and click "Start authentication".https://security.microsoft.com/authentication?viewid=DKIM). DKIM there relies on two CNAME records, selector1._domainkey and selector2._domainkey, whose exact values the portal shows for your domain: copy them as they are, then turn signing on.Gmail accepts keys of 1024 bits and up; 2048 bits is the length the standard recommends. Allow up to 48 hours for a newly published key to be visible everywhere.
DMARC ties SPF and DKIM to the address the recipient sees, the one in the From field. A message passes DMARC when SPF or DKIM is valid for the domain of that address: that is alignment. The record also says what to do with a message that fails, and where to send reports.
v=DMARC1; p=none; rua=mailto:dmarc@your-domain.com
| Policy | What the domain asks for | When to choose it |
|---|---|---|
p=none | No action: providers only send reports. | At the start, to find everything that sends with your domain. |
p=quarantine | Put failing messages in the spam folder. | Once the reports show only legitimate senders, all passing. |
p=reject | Refuse failing messages. | Once quarantine has run for a few weeks without losing legitimate mail. |
p=none with a rua address. The large providers send a daily aggregate report there, a compressed XML file listing the servers that sent with your domain and how they fared.p=quarantine, then, after a few weeks without lost mail, to p=reject. If your team posts to mailing lists, stay at quarantine: the standard advises against reject for such domains, because lists modify the messages they redistribute.Older guides suggest ramping up with the pct tag. The current DMARC standard, RFC 9989, published in May 2026, no longer recognizes it: you ramp up through the policy itself.
Many website forms send the message with the visitor’s address as the sender. The website server has no authority over the visitor’s domain, so SPF and DKIM cannot align and DMARC fails. When the visitor’s provider publishes a strict policy (yahoo.com publishes p=reject), the message is refused or filed as spam before it reaches you.
form@your-domain.com.https://check.spamhaus.org/, looks up an IP address or a domain.p=none or stricter, alignment, one-click unsubscribe and a reported spam rate under 0.3%. Since November 2025, Gmail rejects part of the traffic that misses these rules. Yahoo applies similar requirements without publishing a threshold, and since 5 May 2025 Outlook.com has rejected mail from domains sending more than 5,000 messages a day without SPF, DKIM and DMARC.postmaster.google.com) shows your domain reputation and spam rate at Gmail once the domain is verified with a DNS record. The dashboards fill in once your sending volume is high enough.Simafri Suite brings your whole team’s email, calendar, contacts and files onto your own domain name, set up, secured and supported by Simafri. One account, unlimited users, no commitment.
Each mailbox provider runs its own filters and its own reading of SPF, DKIM and DMARC. A message can reach the inbox at one provider and land in spam or junk at another, especially when authentication is incomplete. The Authentication-Results header of the message received gives that provider’s verdict.
A domain carries a single SPF record. With two records starting with v=spf1, the SPF check returns a permanent error (permerror). Merge them into one record that keeps every include and every address.
As long as the record takes to propagate, depending on its time to live (TTL): from a few minutes to 48 hours. Google states up to 48 hours for SPF and DKIM. Then check with a new message to Gmail and Show original.
p=none only asks for reports: providers take no action on failing messages. This stage is for finding every service that sends with your domain. Protection against spoofing comes with p=quarantine, then p=reject.
Simafri
Let's talk about your website
Tell us about your project in a few words: we will get back to you quickly.
Thank you! Your request has been sent. We'll get back to you shortly.
Prefer email? Write to us at support@simafri.com.