The DNS records
This name and target are the same for every Odoo database; only the domain the record sits under is yours.
Selector odoo
Type: CNAME · Host: odoo._domainkey
odoo._domainkey.odoo.com.
The trailing dot marks a full name. Some DNS hosts want it; others add it or reject it, so follow your host's format.
SPF on the same domain
Type: TXT · Host: @
v=spf1 include:_spf.odoo.com ~all
Merge include:_spf.odoo.com into an existing SPF record rather than adding a second one.
Set it up and turn on signing
- Confirm Odoo sends from your own domain through Odoo's mail server. If you configured an outgoing mail server of your own, Odoo says to use that provider's records instead.
- At your DNS host, create a CNAME with the name
odoo._domainkeyand the targetodoo._domainkey.odoo.com.. Forcompany-name.com, the full name isodoo._domainkey.company-name.com. - Add the SPF include
_spf.odoo.comon the domain Odoo uses for its Alias Domain. - Test the key: Odoo suggests a DKIM lookup with the selector
odoo(entered asexample.com:odooin MXToolbox). The checker below does the same with the selector prefilled. - Publish a DMARC record. Odoo describes
p=noneas a way to collect reports without affecting delivery.
DMARC alignment
Odoo is explicit that, for Odoo Online, DKIM on the sending domain is required for DMARC to pass. With the CNAME in place, the signature carries your domain and lines up with the From address. SPF can align too, but only when the Alias Domain, which Odoo uses for bounces, is your domain and its record includes _spf.odoo.com.
Key length and rotation
The CNAME hands the key to Odoo's own odoo._domainkey.odoo.com record, so Odoo can replace it without a DNS edit on your side. Odoo doesn't document a key length or rotation schedule. When we looked it up on 3 November 2026, that record held a 1024-bit RSA key, below the 2048 bits RFC 8301 recommends but within what it allows.
Common mistakes
- Expecting a key you can paste. Odoo uses a CNAME, not a TXT key; there's nothing to copy into Odoo.
- Records on the wrong domain. The CNAME belongs on the domain in your From address; SPF belongs on the Alias Domain.
- Odoo records with your own outgoing server. When Odoo relays through your provider, that provider signs the mail.
- Testing with the wrong selector. Odoo's key is under
odoo; a lookup fordefaultorselector1finds nothing.
Check your Odoo DKIM key
The selector is filled in for you; add your domain. Free, reads public DNS only.
Frequently asked questions
What DKIM selector does Odoo use?
odoo. The CNAME odoo._domainkey on your domain points to odoo._domainkey.odoo.com., and Odoo's documentation tests it with the selector odoo.
Do I need the Odoo DKIM CNAME on an odoo.com subdomain?
No. Odoo says Odoo Online and Odoo.sh databases that send from the default Odoo subdomain are already set up for SPF, DKIM and DMARC. The CNAME is for mail sent from your own domain.
Why does Odoo mail fail DMARC without DKIM?
Because SPF passes only for the bounce domain, which often isn't your From domain. Odoo says DKIM on the sending domain is required for DMARC to pass with Odoo Online, and the CNAME provides it.
Sources
- Odoo documentation: Configure DNS records to send emails in Odoo
- RFC 8301: Cryptographic algorithm and key usage update to DKIM
- RFC 6376: DomainKeys Identified Mail (DKIM) Signatures
- RFC 8301: Cryptographic Algorithm and Key Usage Update to DKIM
Checked against Odoo's documentation on November 3, 2026. Providers change their setup screens; if yours differs, follow the values your admin console shows.
DKIM records for other providers
- Microsoft 365CNAME: selector1, selector2
- Google WorkspaceTXT: google
- Zoho MailTXT: you choose (e.g. zoho)
- GoDaddyCNAME: secureserver1, secureserver2
- FastmailCNAME: fm1, fm2, fm3
- Proton MailCNAME: protonmail, protonmail2, protonmail3
- iCloud MailCNAME: sig1
- HostingerCNAME: hostingermail-a, hostingermail-b, hostingermail-c
- Private EmailTXT: privateemail, default (bought before 2 June 2026)
- IONOSCNAME: s1-ionos, s2-ionos, s42582890
- Rackspace EmailTXT: shown in the Cloud Office Control Panel
- Amazon SESCNAME or TXT: <token1>, <token2>, <token3> (Easy DKIM), your own (BYODKIM)
- SendGridCNAME or TXT: s1, s2
- MailgunTXT or CNAME: assigned by Mailgun (e.g. pic, krs, smtp), pdk1, pdk2 (Automatic Sender Security)
- PostmarkTXT: <timestamp>pm (e.g. 20131031155228pm)
- MailjetTXT: mailjet
- SMTP2GOCNAME: shown in SMTP2GO for your domain
- SparkPostTXT: scph<number> (generated, e.g. scph0316), your own (API)
- Elastic EmailTXT: api
- ResendTXT: resend
- MailerSendCNAME: ms1, ms2
- MailchimpCNAME: k2 and a second CNAME (Marketing), mte1, mte2 (Transactional)
- BrevoTXT or CNAME: mail (TXT), 2 CNAMEs from your account
- HubSpotCNAME: hs1-<number>, hs2-<number>
- KlaviyoCNAME: km1, km2 (marketing), kt1, kt2 (transactional), ks1, ks2 (service)
- ActiveCampaignCNAME: acdkim1, acdkim2
- Constant ContactCNAME or TXT: ctct1, ctct2 (CNAME), generated per key (TXT)
- SquarespaceCNAME: squarespace
- Dynamics 365 Customer InsightsCNAME: CNAME1 and CNAME2 from the wizard (e.g. namkey1)
- MailerLiteCNAME: litesrv
- Campaign MonitorTXT: cm, your own (existing keys)
- KitCNAME: cka
- MarketoTXT: chosen by you in Marketo
- Account Engagement (Pardot)TXT: shown in Expected DNS Entries
- Customer.ioTXT: cio
- Zoho CampaignsTXT: numbered per account (e.g. 2232)
- SalesforceCNAME: you choose two (e.g. example-sf-a, example-sf-b)
- ZendeskCNAME: zendesk1, zendesk2
- Help ScoutCNAME: strong1, strong2
- IntercomCNAME: intercom
Compare every provider's selectors in one table · SPF record for Odoo
Related guides
How to find a domain's DKIM selector, and check its key
Find a DKIM selector from the s= tag in an email header, see the selectors Microsoft 365, Google Workspace and common senders use, then check the key.
8 min read SPF, DKIM & DMARCHow to rotate DKIM keys without breaking email
How often to rotate DKIM keys, which key length to use, how to name selectors, and how to rotate in Microsoft 365, Google Workspace and on your own server.
9 min read SPF, DKIM & DMARCDKIM "body hash did not verify" and other DKIM failures: causes and fixes
Fix DKIM failures: body hash did not verify, signature did not verify, no key for signature and short keys. Causes from mailing lists to broken TXT records.
9 min readLast updated