This page provides detailed instructions for configuring the DNS records required to verify your sending domain and ensure optimal email deliverability.

Quick Setup Checklist

Follow these steps to configure your domain:

StepRecordStatus
1Add 3 DKIM CNAME records
2Add SPF TXT record
3Add Return Path CNAME record
4Add DMARC TXT record (recommended)
5Click "Verify DNS" in dashboard

DNS Propagation Time

DNS changes typically take 5-30 minutes to propagate, but can take up to 48 hours in some cases. If verification fails, wait a few minutes and try again.

Overview of Email Authentication

Email authentication uses three key technologies to prove your emails are legitimate:

TechnologyPurposeRecord Type
DKIMCryptographically signs emails to prove authenticityCNAME (x3)
SPFSpecifies which servers can send email for your domainTXT
DMARCDefines policy for handling authentication failuresTXT

All Three Matter

While only DKIM and SPF are strictly required, adding DMARC significantly improves deliverability and provides visibility into email authentication issues.

DKIM (DomainKeys Identified Mail)

DKIM adds a digital signature to your emails that receiving servers can verify. Send.dev uses three DKIM selectors for key rotation and redundancy.

Required DKIM Records

Add these three CNAME records to your DNS:

NameTypeValue
send1._domainkey.mail.yourdomain.comCNAMEsend1.dkim.send.dev
send2._domainkey.mail.yourdomain.comCNAMEsend2.dkim.send.dev
send3._domainkey.mail.yourdomain.comCNAMEsend3.dkim.send.dev

Use Your Actual Domain

Replace mail.yourdomain.com with your actual sending subdomain in all examples.

How DKIM Works

1. You send email via Send.dev API
2. Send.dev signs the email with your domain's private key
3. Receiving server fetches your public key from DNS
4. Signature is verified, proving the email is authentic

DKIM Verification

To verify your DKIM records are correctly configured:

# Check DKIM record
dig CNAME send1._domainkey.mail.yourdomain.com

# Expected output should show:
# send1._domainkey.mail.yourdomain.com. CNAME send1.dkim.send.dev.

SPF (Sender Policy Framework)

SPF specifies which mail servers are authorized to send email on behalf of your domain.

Required SPF Record

Add this TXT record to your DNS:

NameTypeValue
mail.yourdomain.comTXTv=spf1 include:spf.send.dev ~all

SPF Explained

v=spf1                    # SPF version 1
include:spf.send.dev      # Authorize Send.dev servers
~all                      # Soft fail for unauthorized servers

Merging SPF Records

Important: You can only have ONE SPF record per domain. If you already have an SPF record (e.g., for Google Workspace), you need to merge them:

Before (Invalid - Two SPF records):

v=spf1 include:_spf.google.com ~all
v=spf1 include:spf.send.dev ~all

After (Valid - Merged):

v=spf1 include:_spf.google.com include:spf.send.dev ~all

Common SPF Combinations

ServicesSPF Record
Send.dev onlyv=spf1 include:spf.send.dev ~all
Send.dev + Google Workspacev=spf1 include:_spf.google.com include:spf.send.dev ~all
Send.dev + Microsoft 365v=spf1 include:spf.protection.outlook.com include:spf.send.dev ~all
Send.dev + Mailchimpv=spf1 include:servers.mcsv.net include:spf.send.dev ~all

SPF Verification

# Check SPF record
dig TXT mail.yourdomain.com

# Expected output should include:
# "v=spf1 include:spf.send.dev ~all"

DMARC (Domain-based Message Authentication)

DMARC tells receiving servers what to do when DKIM or SPF checks fail, and provides reporting on email authentication.

Add this TXT record to your DNS:

NameTypeValue
_dmarc.mail.yourdomain.comTXTv=DMARC1; p=none; rua=mailto:dmarc@send.dev

DMARC Policy Options

PolicyBehaviorWhen to Use
p=noneMonitor only, don't rejectInitial setup, testing
p=quarantineSend failures to spamAfter monitoring shows healthy auth
p=rejectReject failures entirelyMaximum protection, well-established domain

DMARC Progression

We recommend gradually increasing your DMARC policy:

Week 1-2 (Monitoring):

v=DMARC1; p=none; rua=mailto:dmarc@send.dev

Week 3-4 (Partial Quarantine):

v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@send.dev

Week 5+ (Full Quarantine):

v=DMARC1; p=quarantine; rua=mailto:dmarc@send.dev

Final (Reject):

v=DMARC1; p=reject; rua=mailto:dmarc@send.dev

DMARC Tags Explained

TagDescriptionExample
vDMARC version (always DMARC1)v=DMARC1
pPolicy for domainp=none, p=quarantine, p=reject
pctPercentage of messages to apply policypct=25 (25%)
ruaEmail address for aggregate reportsrua=mailto:dmarc@send.dev
rufEmail address for forensic reportsruf=mailto:forensic@yourdomain.com
spPolicy for subdomainssp=reject
adkimDKIM alignment modeadkim=s (strict) or adkim=r (relaxed)
aspfSPF alignment modeaspf=s (strict) or aspf=r (relaxed)

Return Path (Bounce Handling)

The return path record allows Send.dev to properly handle bounces.

Required Return Path Record

NameTypeValue
bounce.mail.yourdomain.comCNAMEbounce.send.dev

This enables:

  • Proper bounce handling and reporting
  • Better deliverability (aligned return path)
  • Accurate bounce metrics in your dashboard

DNS Provider Instructions

Cloudflare

  1. Log in to Cloudflare Dashboard
  2. Select your domain
  3. Go to DNSRecords
  4. Click Add record for each record
  5. For CNAME records, disable proxy (grey cloud)

Disable Proxy

Cloudflare proxy must be disabled (grey cloud icon) for all email DNS records.

AWS Route 53

  1. Log in to AWS Console
  2. Go to Route 53Hosted zones
  3. Select your domain
  4. Click Create record for each record
  5. For CNAMEs, omit the trailing dot

GoDaddy

  1. Log in to GoDaddy
  2. Go to Domain SettingsDNS
  3. Click Add under DNS Records
  4. Select record type and enter values

Namecheap

  1. Log in to Namecheap
  2. Go to Domain ListManage
  3. Select Advanced DNS
  4. Click Add New Record

Google Domains (Squarespace)

  1. Log in to Google Domains / Squarespace Domains
  2. Select your domain
  3. Go to DNSCustom records
  4. Add each record

Verification Tools

Online Tools

Command Line

# Check DKIM
dig CNAME send1._domainkey.mail.yourdomain.com

# Check SPF
dig TXT mail.yourdomain.com

# Check DMARC
dig TXT _dmarc.mail.yourdomain.com

# Check Return Path
dig CNAME bounce.mail.yourdomain.com

Troubleshooting

"DNS record not found"

  1. Wait for propagation - DNS changes can take up to 48 hours
  2. Check record name - Ensure exact match (including subdomain)
  3. Check record type - CNAME vs TXT matters
  4. Check for typos - Copy-paste from dashboard to avoid errors

"SPF too many lookups"

SPF has a limit of 10 DNS lookups. If you exceed this:

  1. Remove unnecessary include: statements
  2. Use IP addresses directly instead of includes where possible
  3. Consider using an SPF flattening service

"DKIM signature failed"

  1. Verify all 3 DKIM CNAME records exist
  2. Check for trailing dots (some providers add them)
  3. Ensure CNAME targets are correct
  4. Wait for propagation and retry

"DMARC record not found"

  1. Check record is at _dmarc. prefix
  2. Ensure it's a TXT record (not CNAME)
  3. Verify syntax starts with v=DMARC1;

Complete DNS Record Summary

For domain mail.yourdomain.com:

NameTypeValuePurpose
send1._domainkey.mail.yourdomain.comCNAMEsend1.dkim.send.devDKIM
send2._domainkey.mail.yourdomain.comCNAMEsend2.dkim.send.devDKIM
send3._domainkey.mail.yourdomain.comCNAMEsend3.dkim.send.devDKIM
mail.yourdomain.comTXTv=spf1 include:spf.send.dev ~allSPF
_dmarc.mail.yourdomain.comTXTv=DMARC1; p=none; rua=mailto:dmarc@send.devDMARC
bounce.mail.yourdomain.comCNAMEbounce.send.devBounces

Next Steps

On this page