type, a host (name), and a value — but each has its own quirks about how the host is written. The two rules that travel across all of them:
- Copy the value verbatim. DKIM and SPF values are long and a single dropped character breaks verification. Use copy, never retype.
- Mind the host field. Some providers want the full host (
drin1._domainkey.mail.acme.com); others want it relative to your zone (drin1._domainkey.mail) and append the rest for you. When in doubt, paste the relative form — see each provider below.
Get your real values first. The DKIM, SPF, and DMARC values below are illustrative. Yours come from adding your domain — the dashboard Domains page shows each record with a copy button.
The three records, generically
Whatever the provider, you’re publishing the same set. Here’s what each one looks like and which provider field it maps to:| Record | Type | Host / Name | Notes |
|---|---|---|---|
| DKIM | TXT | …_domainkey.… | Authorizes sending. Required. |
| MAIL FROM (envelope) | MX | send.… | Set the priority to 10. |
| MAIL FROM (SPF) | TXT | send.… | Shares the host with the MX above — both records coexist. |
| DMARC | TXT | _dmarc.… | Policy record. Skip if one already exists (see below). |
Cloudflare
From the dashboard, pick your domain, then DNS → Records → Add record.- Set Type to
TXTorMXto match the record. - In Name, paste the host relative to your zone — Cloudflare appends your domain automatically. For
drin1._domainkey.mail.acme.comon the zoneacme.com, enterdrin1._domainkey.mail. (You can also paste the full host; Cloudflare normalizes it.) - Paste the Content / value verbatim. For the MX record, set Priority to
10. - Turn the proxy OFF (grey cloud, “DNS only”) — proxying applies to web records, not mail. TXT/MX aren’t proxyable anyway, so just confirm you’re not using a CNAME through the orange cloud for any DKIM record.
Namecheap
Go to Domain List → Manage → Advanced DNS, then Add New Record.- Choose the record type. Namecheap labels SPF/DKIM/DMARC as plain
TXT Recordand the mail exchanger asMX Record. - In Host, enter the host relative to your zone and drop the trailing domain. For
_dmarc.mail.acme.comonacme.com, enter_dmarc.mail. For a record on the bare domain, use@. - Paste the value into Value. For the MX record, set Priority to
10. - Leave TTL as
Automatic. Namecheap can take longer to propagate, so allow extra time before re-verifying.
GoDaddy
Open Domain Portfolio → your domain → DNS → Add record.- Pick the Type (
TXTorMX). - GoDaddy’s Name field is relative to your zone. Enter the host without the trailing domain — e.g.
send.mailfor a record onsend.mail.acme.com. Use@for the root. - Paste the Value verbatim. For MX, GoDaddy asks for a Priority — enter
10. - If GoDaddy auto-quotes long TXT values, paste the raw value without adding your own surrounding quotes.
AWS Route 53
In the Route 53 console, open Hosted zones → your zone → Create record.- Route 53 expects the fully-qualified record name. Enter the complete host as given — e.g.
drin1._domainkey.mail.acme.com— typically by typing the subdomain portion into the Record name box while the zone suffix is shown beside it. - For TXT records, Route 53 requires the value to be wrapped in double quotes:
"v=DKIM1; k=rsa; p=…". Add the quotes if the console doesn’t. - For the MX record, the Value is the priority and the host together on one line:
10 send-mx-host.example. - Leave routing policy as Simple.
Vercel
If your domain’s nameservers point at Vercel, manage records under your project → Settings → Domains (or Account → Domains → your domain).- Choose Add → DNS Record and set the Type.
- The Name field is relative to your zone. Enter the subdomain part only —
drin1._domainkey.mailfor a record ondrin1._domainkey.mail.acme.com, or leave it blank /@for the apex. - Paste the Value verbatim. For the MX record, fill in the Priority field with
10.
Confirm
After saving, give DNS a minute (sometimes longer), then hit Verify now on the Domains page or call the verify endpoint. Drin also re-checks on a background schedule, so a record that wasn’t found yet will flip to verified on its own once it propagates. See Verify a domain for the full flow.Provider not listed? The pattern is the same everywhere: match the type, put the host in the provider’s “name/host” field (relative if it appends the zone, full if it doesn’t), and paste the value untouched. The values to use are always the ones from your Add-domain response.
Verify a domain
The end-to-end flow: add, publish, verify, send.
Deliverability
What DKIM, SPF, and DMARC actually buy you — and how to keep them aligned.
