All platforms
CRM-matched DNS HubSpot · 2 CNAME + 2 TXT · DKIM · SPF · DMARC

HubSpot DNS Checker

HubSpot sends from your domain using its own required records , 2 CNAME + 2 TXT covering DKIM, SPF, DMARC. A generic SPF test cannot see whether they match. We check your live DNS against HubSpot’s spec, host by host, character by character. Free, no account.

e$

domain only, we strip email and protocol automatically

What HubSpot requires

HubSpot: 2 CNAME for DKIM + 1 TXT for SPF + 1 TXT for DMARC. This is the exact table our verifier checks your DNS against, not a generic template.

TypeHostRequired valuePurpose
CNAMEhs1-XXXXXX._domainkeyhubspotemail.netDKIM
CNAMEhs2-XXXXXX._domainkeyhubspotemail.netDKIM
TXT@v=spf1 include:_spf.hubspot.com ~allSPF
TXT_dmarcv=DMARC1; p=none; rua=mailto:[email protected]DMARC

Segments shown as XXXXXX are account-specific, HubSpot generates them for your account. The checker treats them as wildcards: the structure must match, the account part is yours.

How HubSpot authenticates

HubSpot handles DKIM by delegation: you publish 2 CNAME records (selectors hs1-XXXXXX, hs2-XXXXXX) pointing into hubspotemail.net, and HubSpot hosts and rotates the actual signing keys on its side. You never see the public key, which also means a checker that only looks for TXT keys at _domainkey will wrongly report DKIM as missing here.

For SPF, HubSpot needs its include (_spf.hubspot.com) present in the ONE SPF record your domain is allowed to publish. If you already have an SPF record, this include is merged into it, never added as a second record; two SPF records is an automatic PermError everywhere.

DMARC is yours, not the platform's: one record at _dmarc governs every sender on the domain. If another tool already publishes it, do not add a second; the spec row above shows the minimum this platform expects to find.

Mistakes we see on HubSpot domains

Publishing the CNAME target as a TXT record. The record type matters: a TXT with the right value still is not a delegation, and the key lookup dies at your zone.

Proxying the _domainkey CNAMEs through a CDN. They must resolve as plain DNS; an orange-clouded record answers with the CDN's addresses and the key disappears.

Adding HubSpot's SPF as a second TXT record next to an existing v=spf1. Receivers see two records and hard-fail both.

Why a generic checker misses this

A standard DNS tool tells you your SPF parses and your DMARC exists. It has no idea HubSpot is in the picture. It cannot tell you a required CNAME points at the wrong target, a selector is missing, or the include chain never reaches HubSpot’s servers, which are precisely the failures that put HubSpot mail in spam while every generic check shows green.

Read the full HubSpot setup guide →

Common questions

What DNS records does HubSpot require?

HubSpot requires 4 DNS records: 2 CNAME + 2 TXT, covering DKIM, SPF, DMARC. The exact hosts and values are in the table above, they come from the same spec table our verifier checks against.

Why does a normal SPF checker pass my domain but HubSpot mail still fails?

A generic checker only tests whether your SPF record parses. It does not know which include HubSpot needs, which CNAME targets its DKIM keys live behind, or which selector names it signs with. We compare your live DNS against HubSpot’s required records character by character, so a missing include or a typo in a CNAME target is called out by name.

What do the XXXXXX parts in HubSpot’s records mean?

Those segments are account-specific, HubSpot generates them for your account and shows the exact values in its sending-domain setup screen. Our checker treats them as wildcards: the structure around them must match, the account-specific part is yours.

Will adding these records break my existing email?

The DKIM CNAMEs and the DMARC record are additive. SPF is the one to be careful with: a domain must publish exactly one SPF record, so if you already have one, merge the new include into it rather than adding a second record, two SPF records is an automatic PermError.

Keep going

All 25 platforms Full DNS check Build a record Run everything