SPF DKIM DMARC is the trio of DNS records that proves your marketing email really comes from your domain. SPF lists the servers allowed to send for you, DKIM signs each message, and DMARC tells inboxes what to do when a message fails both. The method takes an afternoon: list every service that sends as you, publish one SPF record, turn on DKIM in each sending service, add a DMARC record set to none with a report address, then watch the reports and tighten. All of it happens at your domain's DNS host, for free.

The Toolkit take
0.3%
The spam rate Gmail and Yahoo both tell senders to stay below
5,000+ a day
Messages to Gmail accounts that make you a bulk sender
48 hours
Google's wait after SPF and DKIM before turning on DMARC
2 days
Yahoo's window for honoring an unsubscribe

What SPF, DKIM and DMARC each prove

Each record answers a different question a receiving server asks. Think of them as three locks on one door.

SPF record: who may send for you

An SPF record is one line of text in a TXT record that lists every server allowed to send email for your domain. It always starts with v=spf1. Google's example for a domain that sends only through Google Workspace is v=spf1 include:_spf.google.com ~all, and each extra sender gets its own include: tag, up to 10 of them [1]. If a third-party sender is missing from the record, its mail is more likely to be marked as spam.

DKIM: a signature on every message

DKIM adds a cryptographic signature that lets the receiver check the domain owner really sent the message and that nothing changed on the way. If you send with Google Workspace, you turn DKIM on there; for other senders, Google points to free online tools that create the keys, or to your domain provider. Each sender signs separately. Google requires a key of at least 1024 bits for personal Gmail accounts and recommends 2048 bits where your provider supports it.

DMARC: the instruction for failures

DMARC tells the receiving server what to do with mail that fails SPF and DKIM: deliver it anyway (none), send it to spam (quarantine) or refuse it (reject). To pass, the domain that authenticates must match the domain in the From: header. This is alignment, and it is where most homemade setups slip.

What Gmail and Yahoo require today

Since February 2024, both big mailbox providers enforce sender rules, and the bar depends on how much you send. Google defines bulk senders as those sending more than 5,000 messages per day to Gmail accounts [2]. Yahoo uses the same two tiers but does not print a number on its page.

Requirement All senders Bulk senders
Authentication SPF or DKIM SPF and DKIM, plus DMARC (p=none is enough)
From: alignment Recommended practice Required, with SPF or DKIM
Unsubscribe Easy opt-out One-click unsubscribe plus a visible link in the body
Spam rate Below 0.3% Below 0.3%

Two details matter for a small sender. Google asks everyone to keep the spam rate in Postmaster Tools below 0.10% and never reach 0.30%. Yahoo asks bulk senders to honor unsubscribes within 2 days and accepts relaxed alignment [3]. Neither provider promises inbox placement for meeting the rules. They only say mail that misses them may be rejected or filtered.

The SPF DKIM DMARC setup, step by step

You need a login to your domain host, usually where you bought the domain. Google's own pages say nothing has to happen in the Google Admin console for SPF or DMARC; both are records you paste at the host.

  1. List every sender. Write down everything that sends as your domain: your mailbox provider, your email marketing service, your store, your contact form, your help desk. Missing one is the most common SPF failure.
  2. Build the SPF line. Start with v=spf1, add one include: per sender (each service's own setup page gives its value), and end with ~all, which Google recommends.
  3. Publish SPF. At the DNS host, open the page for TXT records. Add or update a TXT record with host @ and your SPF line as the value. If a record starting with v=spf1 already exists, edit it rather than adding a second one. SPF can take up to 48 hours to start working.
  4. Turn on DKIM in each sending service. If you send with Google Workspace, Google's help walks you through turning DKIM on for your domain. For anything else, Google says to confirm that your email service authenticates your domain's mail with SPF and DKIM, or to ask your domain provider for help.
  5. Wait 48 hours. Google says SPF and DKIM should be authenticating for at least 48 hours before you turn on DMARC.
  6. Create a report mailbox. Set up a group or dedicated address for DMARC reports. Google advises against your own inbox, because report volume can be high.
  7. Publish DMARC. Add a TXT record with host _dmarc.example.com (your domain in place of example.com) and a value such as v=DMARC1; p=none; rua=mailto:dmarc@example.com [4]. Some hosts add the domain name automatically, so check the host field after saving.

That is how to set up DMARC without breaking anything. With p=none, mail is delivered as before and the reports start arriving.

💡
Toolkit tip
Start DMARC at none

A p=none policy changes nothing about delivery but starts the daily reports. Move to quarantine only after a week of clean reports.

When to tighten the policy

Google's rollout advice is gradual. Keep p=none for about a week and read the reports daily. If every legitimate stream passes, move to quarantine for a small share of mail with the pct tag, for example 5 or 10 percent, and raise it over time. reject comes last, if at all. Under reject, failing mail is never delivered.

A worked example: one shop, three records

This is an illustration with invented details. A two-person shop at example.com sends staff mail through Google Workspace and a monthly newsletter through an email platform.

A week later, the reports show both streams passing. They also show a third source nobody listed: the website's contact form, sending as the shop's domain. It goes into the SPF record before the policy moves to quarantine. Skipping the monitoring week would have put those form emails at risk of the spam folder as soon as quarantine applied.

Free checks after you publish

You do not need paid tools to confirm the records work. Three free checks cover it. Run them in this order.

Postmaster Tools has two limits worth knowing. Its data covers only personal Gmail accounts, the ones ending in gmail.com or googlemail.com. And it shows nothing on days when your volume is too low, to protect user privacy.

⚠️
Watch out
Never publish two SPF records

When you add a new sender, edit the existing v=spf1 line instead of creating a second TXT record, and keep it within 10 include tags.

Where doing it yourself stops: the list, not the records

Perfect records get you past the authentication gate. That is all. They do not keep you in the inbox. The threshold comes when the records pass but complaints, bounces or volume still hurt. Google's guidance turns to list behavior at that point: automatically unsubscribe people with multiple bounced messages, consider unsubscribing people who never open, and periodically confirm that subscribers still want your mail. Yahoo adds double opt-in and prompt removal of invalid addresses.

Concretely, the homemade route breaks in three places. First, one-click unsubscribe is a pair of headers inside every message, not a DNS record. You cannot add it at your domain host. Second, email list cleaning by hand means matching bounce notices to rows in a spreadsheet after every send, which stops being realistic once a list reaches the low thousands. Third, a spam rate creeping toward 0.3% needs a fast response, and you only see it in Postmaster Tools if your Gmail volume is high enough to show data at all.

That is where an email platform's hygiene features earn their place. Kit recommends authenticating a verified sending domain and adding a DMARC record, and documents both steps. MailerLite has a Clean up inactive tab and double opt-in on forms. Mailchimp marks hard-bounced addresses as Cleaned and stops mailing them, which our guide to what Cleaned means unpacks. Brevo publishes its own suspension thresholds per campaign: over 2% hard bounces, 1% unsubscribes or 0.2% complaints.

Kit Solves this

Kit recommends authenticating a verified sending domain and adding a DMARC record, and documents both. Double opt-in is on by default on forms and landing pages, and engagement scoring lets you send to engaged readers first.

Where it stops: Every new account is reviewed before it can send; the free plan uses Kit branding and the default sending address. Plan: Custom domain on Creator; deliverability reporting by mailbox provider and engagement scoring on Pro
MailerLite Solves this

The Clean up inactive tab removes people who stopped opening in one step, MailerCheck, the vendor's separate verification service, flags role-based, disposable and mistyped addresses, and double opt-in confirms each new subscriber.

Where it stops: The criteria for an account review are not published, and sending pauses while a review runs. Plan: Dedicated IP only on Enterprise
Mailchimp Partly

Addresses that hard bounce or repeatedly soft bounce become Cleaned automatically and get no more email; you can archive or delete inactive contacts yourself.

Where it stops: Cleaning happens only when you send, and the bounces behind it are still recorded against your sending domain.
💡
Toolkit tip
Clean the list before you send

Authentication cannot rescue mail sent to dead or unwilling addresses. Remove repeated bounces and long-silent readers before a big send.

What these platforms add is help with the list, the opt-in and the warnings; the records themselves are published at your DNS host, as above. For the full comparison of platforms and outside services built around this job, see our email deliverability tools guide. If you are still diagnosing why mail lands in spam at all, start with the email deliverability overview.

Frequently asked questions

Do I need DMARC if I only send a small newsletter?+

Gmail requires SPF or DKIM from every sender and adds DMARC for bulk senders, but Google recommends setting up all three for any domain. A p=none record costs nothing and gives you reports.

What does p=none mean in a DMARC record?+

It tells receiving servers to take no action on failing mail and deliver it normally, while logging the results in daily reports sent to your rua address.

Does DMARC stop people from spoofing my domain?+

Only once the policy moves past none. Under quarantine, failing messages go to the spam folder, and under reject, receiving servers refuse them. At p=none, delivery does not change and you only get the reports.

Does email list cleaning improve deliverability?+

Google advises unsubscribing recipients who have multiple bounced messages and considering removal of people who never open, and Yahoo asks senders to remove invalid recipients promptly. Both tie list quality to how your mail is filtered.

The bottom line

Setting up SPF, DKIM and DMARC yourself is free, takes an afternoon and is now the price of entry at Gmail and Yahoo. List every sender, publish one SPF line, turn on DKIM in each service, wait 48 hours, then add DMARC at none with a report mailbox and tighten only after the reports come back clean. Once the records pass, the work moves to the list: bounces, complaints, unsubscribes and inactive readers. That part is where a platform's hygiene tools stop being optional.

Sources
  1. [1] Google Workspace Admin Help (Nov 2026) https://support.google.com/a/answer/10685031
  2. [2] Google Workspace Admin Help (Nov 2026) https://support.google.com/a/answer/81126
  3. [3] Yahoo Sender Hub (Nov 2026) https://senders.yahooinc.com/best-practices/
  4. [4] Google Workspace Admin Help (Nov 2026) https://support.google.com/a/answer/2466563