Skip to content
OmniChannels.ai

Email Deliverability: SPF, DKIM and DMARC Explained

Email deliverability explained: SPF, DKIM and DMARC with example DNS records, Gmail, Yahoo and Outlook sender rules, one-click unsubscribe, warm-up and a checklist.

Updated 10 min read

By OmniChannels.ai Editorial Team · Reviewed by BroadNet Messaging Solutions Team

Omnichannel

Short answer

Email deliverability is whether your messages reach the inbox instead of being rejected or sent to spam. It rests on three DNS records: SPF lists the servers allowed to send for your domain, DKIM signs each message, and DMARC tells receivers what to do when mail fails and sends you reports. Add one-click unsubscribe, clean lists, gradual volume growth and a spam rate below 0.3%.

On this page
  1. What is email deliverability?
  2. What do SPF, DKIM and DMARC do?
  3. What do example DNS records look like?
  4. What is DMARC alignment and why does it cause failures?
  5. What do Gmail, Yahoo and Outlook.com require from bulk senders?
  6. How do you set up one-click unsubscribe?
  7. How do you warm up a new domain or IP?
  8. How do you keep your list clean?
  9. How do you monitor deliverability?
  10. Email deliverability checklist
  11. Worked example: a Dubai online pharmacy adds campaigns
  12. What are the limits of this guide?
  13. How OmniChannels.ai helps

Key takeaways

  • SPF, DKIM and DMARC prove that mail really comes from your domain; DMARC passes only when SPF or DKIM passes for a domain that aligns with the visible From address.
  • Google's guidelines apply stricter rules to senders of more than 5,000 messages a day to Gmail addresses: SPF, DKIM and DMARC, one-click unsubscribe for marketing mail, and a spam rate kept below 0.30%.
  • Yahoo asks bulk senders for SPF, DKIM and a DMARC policy of at least p=none, and says to honour unsubscribes within 2 days; Outlook.com applies authentication rules to domains sending more than 5,000 emails a day.
  • Once Google considers you a bulk sender, the status does not expire, so build the authentication and unsubscribe setup before you reach the threshold.
  • Start DMARC at p=none with a reporting address, read the reports to find every legitimate sender, then tighten the policy.

This guide is for marketing, CRM and engineering teams that send email from their own domain and want it to reach the inbox. It explains what deliverability is, how SPF, DKIM and DMARC work with example DNS records, what Gmail, Yahoo and Outlook.com ask of bulk senders, and gives you a checklist to run before a campaign.

What is email deliverability?

Email deliverability is the ability of your email to reach recipients' inboxes rather than being rejected or filtered to spam. It depends on authentication, sender reputation, list quality, complaint rates and content. Our email deliverability glossary entry gives the short definition.

Two things are often confused. A message is delivered when the receiving server accepts it. It is placed in the inbox only if the mailbox provider's filters then trust it. A campaign can show a 99% acceptance rate and still land in spam, which is why you need both server-side signals (bounces) and mailbox-provider signals (spam rate, reputation).

What do SPF, DKIM and DMARC do?

SPF says which servers may send for your domain, DKIM signs the message so tampering is detectable, and DMARC ties both to the From address you show and tells receivers what to do on failure. See also the SPF, DKIM and DMARC glossary entry.

Standard What it checks Where it lives Fails when
SPF (RFC 7208) The connecting server is on your allowed list TXT record on your domain A sending service is missing from the record, or the record has more than 10 DNS lookups
DKIM (RFC 6376) The message signature matches a public key TXT record at selector._domainkey.yourdomain The message is altered, the key is wrong or the platform does not sign for your domain
DMARC SPF or DKIM passed for a domain aligned with the From address TXT record at _dmarc.yourdomain Neither SPF nor DKIM passes in alignment

The DMARC specification was originally RFC 7489. The IETF has since published RFC 9989, a standards-track document that obsoletes RFC 7489 and RFC 9091, so cite RFC 9989 when you need the current reference. The basic tags used in this article (v, p, rua) are unchanged in meaning.

What do example DNS records look like?

Here are simplified records for the documentation domain example.com. Replace the include and the key with the values your mail provider gives you; never copy another company's values.

SPF (one record per domain):

example.com.  IN TXT  "v=spf1 include:_spf.mailprovider.example ~all"

DKIM (your provider creates the key pair and gives you the selector and public key):

s1._domainkey.example.com.  IN TXT  "v=DKIM1; k=rsa; p=MIIBIjANBgkq...public-key-here..."

DMARC (start in monitoring mode):

_dmarc.example.com.  IN TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"

Notes on each:

  • SPF: publish exactly one SPF record. Two records make SPF fail. Every service that sends as your domain (marketing platform, help desk, CRM, messaging platform) needs to be covered by an include or an IP entry, and the total must stay within 10 DNS lookups.
  • DKIM: Google says sending to personal Gmail accounts requires a DKIM key of 1024 bits or longer, and recommends 2048 bits if your provider supports it.
  • DMARC: p=none tells receivers to take no action on failures but to still send you reports to the rua address. It is the right first step. Later you move to p=quarantine and then p=reject.

What is DMARC alignment and why does it cause failures?

Alignment means the domain that passed SPF or DKIM matches the domain in the visible From address. DMARC passes when at least one of the two passes in alignment. This is the step people miss.

Suppose your newsletter platform sends from news@example.com but uses its own bounce domain for SPF and its own domain to sign DKIM. SPF and DKIM both "pass", yet neither domain matches example.com, so DMARC fails. The fix is to set up custom domain authentication with the platform, so it signs with a key published under your domain and uses a bounce domain under your domain. Google also notes that DMARC alignment is not required for forwarded or mailing-list messages.

What do Gmail, Yahoo and Outlook.com require from bulk senders?

Gmail, Yahoo and Outlook.com all expect authentication from high-volume senders, and Gmail and Yahoo add one-click unsubscribe and spam-rate limits. Check each provider's page for the current text, because enforcement details change.

Requirement Google (Gmail) Yahoo Microsoft (Outlook.com)
Who is covered All senders for basics; extra rules above 5,000 messages a day to Gmail accounts Basics for all senders; extra rules for bulk senders Domains sending more than 5,000 emails a day
Authentication SPF or DKIM for all; SPF, DKIM and DMARC for bulk senders SPF or DKIM for all; both, plus DMARC, for bulk senders SPF and DKIM must pass; DMARC with at least p=none, aligned
DMARC policy Must pass, with alignment to the From domain At least p=none and must pass; rua strongly recommended At least p=none, aligned with SPF or DKIM
One-click unsubscribe Required for marketing and subscribed mail from bulk senders, plus a visible link Required for bulk senders, plus a visible link; honour within 2 days Not part of the cited requirements
Spam rate Below 0.10%, never 0.30% or higher Below 0.3% Not stated in the cited post

Further points from Google's guidelines: the sending IP needs matching forward and reverse DNS (a valid PTR record), mail must be sent over TLS, messages need a valid Message-ID and a clean RFC 5322 format, and HTML should not hide content. Senders who reach the bulk threshold once are permanently considered bulk senders; the status has no expiry. Google also says non-compliant mail may be rejected or delivered to spam.

On Outlook.com, Microsoft's post says that non-compliant mail from high-volume domains is routed to the Junk folder, with rejection (error 550; 5.7.515 Access denied) planned for a later date to be announced. Re-check Microsoft's page before you rely on this, as the enforcement stage may have moved.

How do you set up one-click unsubscribe?

Add two headers to every marketing message, and include a visible unsubscribe link in the body as well. The headers are defined in RFC 2369 and RFC 8058.

List-Unsubscribe: <https://example.com/unsubscribe?t=abc123>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

The URL must accept a POST request and unsubscribe the recipient without a login or further questions. Yahoo says the POST method is highly recommended and that a mailto method is acceptable. Yahoo also asks senders to honour unsubscribes within 2 days, so process them automatically and keep one suppression list shared across every campaign tool you use.

How do you warm up a new domain or IP?

Warm-up means increasing your sending volume in steps so that mailbox providers can learn your reputation from good engagement. Google's guidance is only to increase volume gradually and monitor recipients' spam reports, so use a schedule driven by data rather than a published table.

  1. Authenticate first. Publish SPF, DKIM and DMARC and confirm they pass before the first send.
  2. Start with the most engaged people: recent buyers, recent openers or people who just subscribed.
  3. Raise volume in steps only while bounces and complaints stay low.
  4. Keep a steady rhythm. Sudden spikes from a quiet domain look like abuse.
  5. Pause the increase at the first sign of rising bounces, blocks or complaints, and fix the cause before continuing.
  6. Add cooler segments last, and drop those that never engage.

Where you send from a shared platform sender address you are inheriting someone else's reputation; sending from your own authenticated domain makes your reputation yours, for better or worse.

How do you keep your list clean?

A clean list is the cheapest deliverability tool. Send only to people who agreed to receive your email, and remove addresses that cannot receive it.

  • Collect consent properly and keep a record: see our guide to opt-in and consent across channels and the free opt-in consent generator.
  • Remove hard bounces immediately. Repeatedly mailing invalid addresses harms your reputation.
  • Suppress unsubscribes and spam complainers across every tool.
  • Sunset inactive contacts. Define inactivity for your business (for example, no click or purchase over a period you choose) and stop mailing them, or run one re-permission message first.
  • Do not buy lists. Purchased addresses have no consent and tend to produce complaints.
  • Separate transactional and marketing streams so a marketing complaint spike does not hurt receipts and password resets. We cover this in transactional vs marketing email.

How do you monitor deliverability?

Watch three sources: your own bounce and delivery data, the mailbox providers' dashboards and your DMARC reports.

  • Google Postmaster Tools shows spam rate, authentication results, and domain and IP reputation for mail sent to Gmail users. Google's guidelines tell senders to use it to monitor spam reports, delivery problems and authentication.
  • DMARC aggregate reports sent to your rua address list every source that sends as your domain. They are how you find the forgotten CRM or invoicing tool before you move to p=reject.
  • Bounce handling: hard bounces are permanent failures and should be removed; soft bounces are temporary and should be retried a few times before you stop. In the Email API you can scan the mailbox for bounce messages and start bounce monitoring.
  • Seed tests: send to your own addresses at the major providers before each campaign and check the folder, the headers and the authentication results.

Email deliverability checklist

Run this before every new domain, platform or large campaign.

  1. SPF record published once, covering every sending service, within 10 lookups.
  2. DKIM enabled for your domain, key of 2048 bits where supported.
  3. DMARC record published with a rua address; policy moved up only after reports are clean.
  4. From domain aligned with the SPF or DKIM domain.
  5. Forward and reverse DNS match on the sending IP, and TLS enabled.
  6. One-click unsubscribe headers and a visible unsubscribe link on marketing mail.
  7. Unsubscribes processed automatically, well inside 2 days.
  8. Consent recorded for every recipient; no purchased lists.
  9. Hard bounces removed; inactive contacts sunsetted.
  10. Volume ramped gradually; spam rate watched in Postmaster Tools.
  11. Marketing and transactional mail on separate streams.
  12. Test sends checked at the major mailbox providers.

Worked example: a Dubai online pharmacy adds campaigns

"Noor Pharmacy", a synthetic Dubai retailer, sends order receipts from orders@noorpharmacy.example through its web shop and wants to add a monthly newsletter from a marketing platform. In an audit it finds that the web shop is covered by SPF but the newsletter platform signs with its own domain.

Actions: add the platform to the existing SPF record rather than creating a second one, enable custom domain DKIM, publish p=none with a rua mailbox and read two weeks of reports. The reports reveal an old support tool that was also sending as the domain; it gets authenticated. The newsletter moves to a subdomain, news.noorpharmacy.example, so a complaint spike on promotions cannot affect receipts. Then the pharmacy mails its most engaged customers first and widens the audience in steps, watching the spam rate.

What are the limits of this guide?

Authentication gets you through the door, not into the inbox. Mailbox providers also weigh engagement, content and history that no DNS record controls, and their rules change, so we link the providers' own pages rather than quote fixed thresholds beyond those cited. Nobody can promise inbox placement. This is general guidance, not legal advice; marketing email also has consent rules, covered in transactional vs marketing email.

How OmniChannels.ai helps

OmniChannels.ai sends email from your own sender: you connect your mailbox over SMTP and IMAP, or send through the Email API, with checks for your domain's SPF and DMARC records and a sandbox test send. Campaigns support Excel or CSV upload, duplicate filtering, preview and scheduling, and replies land in the Omni Inbox next to WhatsApp and other channels. Delivery reports export to CSV. See the email channel or book a developer walkthrough. For why email is only one part of the mix, read SMS vs email marketing.

Frequently asked questions

What is the difference between SPF, DKIM and DMARC?

SPF is a DNS record listing the servers allowed to send mail for a domain. DKIM adds a cryptographic signature to each message that receivers check against a public key in DNS. DMARC builds on both: it sets the policy for mail that fails, requires alignment with the visible From domain and requests reports. You need all three for reliable inbox placement.

Do I need DMARC if I send fewer than 5,000 emails a day?

Google requires SPF or DKIM from all senders and adds DMARC for bulk senders above 5,000 messages a day to Gmail. Even below that line, publishing DMARC at p=none costs little, gives you reports about who sends as your domain, and prepares you for growth. Once you hit the bulk threshold, Google treats you as a bulk sender permanently.

What is a good spam complaint rate?

Google's guidance is to keep the spam rate reported in Postmaster Tools below 0.10% and never reach 0.30%. Yahoo asks senders to stay below 0.3%. Treat these as ceilings, not goals. Send only to people who asked for your email, make unsubscribing easy and remove inactive addresses so complaints stay rare.

What is one-click unsubscribe and do I need it?

One-click unsubscribe lets a recipient opt out from the mail client without opening a page. You add two headers, List-Unsubscribe with a URL and List-Unsubscribe-Post set to List-Unsubscribe=One-Click, as defined in RFC 8058. Google and Yahoo require it for marketing and subscribed mail from bulk senders, alongside a visible unsubscribe link in the body.

How long does it take to warm up a new sending domain?

There is no fixed schedule. Google only says to increase volume gradually while monitoring spam reports. Start with your most engaged recipients, raise volume in steps and pause the increase if bounces or complaints rise. Larger lists need more steps. Judge progress by Postmaster Tools data and bounce rates, not by a calendar.

Why does my email go to spam even with SPF, DKIM and DMARC?

Authentication proves identity, not quality. Mail can still be filtered because of a poor sender reputation, high complaint or bounce rates, purchased or stale lists, misleading subject lines, broken HTML, or links to low-reputation domains. Also check alignment: a third-party platform that signs with its own domain passes DKIM but may fail DMARC for your brand.

Sources

  1. Email sender guidelines, Google Workspace Admin Help
  2. Email sender guidelines FAQ, Google Workspace Admin Help
  3. Sender best practices, Yahoo Sender Hub
  4. Strengthening the email ecosystem: Outlook's new requirements for high-volume senders, Microsoft Tech Community
  5. RFC 9989: Domain-Based Message Authentication, Reporting, and Conformance (DMARC), RFC Editor