How Domain Verification Works
Add Your Domain
Add a domain in the Lettr dashboard or via the API. Lettr generates the DNS records you need to configure.
Copy the DNS Records
Lettr provides a CNAME record for verification, a DKIM TXT record for email signing, and a DMARC TXT record for policy enforcement. Copy each value exactly as shown.
Add Records to Your DNS Provider
Log in to your DNS provider (Cloudflare, GoDaddy, Namecheap, Route 53, etc.) and create the records with the exact names, types, and values provided.
Verify the Domain
Return to Lettr and click Verify, or call the verification API endpoint. Lettr queries your DNS records and checks that they match the expected values.
Common Verification Failures
DNS Records Not Propagated Yet
After adding DNS records, changes do not take effect instantly. Propagation typically takes 15 minutes to 48 hours depending on your DNS provider and TTL settings. What to do:- Wait at least 30 minutes before your first verification attempt.
- If verification fails, wait a few hours and try again.
- Use the commands in Checking DNS Records Yourself to confirm your records are visible before re-verifying.
Most providers propagate within 1–2 hours. If your records are still not visible after 48 hours, the issue is likely a configuration problem rather than propagation delay.
Incorrect DKIM Record Value
The DKIM record is a long TXT value that must be copied exactly as Lettr provides it. Even a single missing character will cause verification to fail. Common mistakes:| Mistake | What Goes Wrong |
|---|---|
Missing v=DKIM1; prefix | The record is not recognized as a valid DKIM key |
| Truncated public key | Some dashboards cut off long values when you paste them |
| Wrong selector in the record name | The name must be {selector}._domainkey.yourdomain.com, using the selector Lettr provides |
| Extra spaces or line breaks | Some providers insert whitespace that breaks the key |
CNAME Conflicts
A CNAME record cannot coexist with other record types at the same name (this is a DNS specification requirement). If you already have an A, MX, or TXT record at the root of your domain, adding a CNAME at the root will conflict. Solutions:- Use a subdomain — Add the CNAME to a subdomain (e.g.,
mail.yourdomain.com) instead of the root domain. - Use CNAME flattening — Some DNS providers (such as Cloudflare) support CNAME flattening, which resolves CNAME records at the root without conflicting with other record types.
DMARC Record Issues
The DMARC TXT record must follow a specific format and be placed at the correct name. Common problems:- Wrong record name — The record must be created at
_dmarc.yourdomain.com, notyourdomain.comordmarc.yourdomain.com. - Multiple DMARC records — Only one DMARC TXT record should exist at
_dmarc.yourdomain.com. Multiple records cause unpredictable behavior and verification failures. Remove duplicates. - Invalid format — A minimal valid DMARC record looks like
v=DMARC1; p=none;. Thev=DMARC1tag must come first.
Wrong DNS Record Type
Using the wrong record type is a common mistake, especially when DNS providers present confusing interfaces.| Record | Correct Type | Common Mistake |
|---|---|---|
| Verification CNAME | CNAME | Creating an A record instead |
| DKIM | TXT | Creating a CNAME instead of TXT |
| DMARC | TXT | Creating a CNAME instead of TXT |
| Tracking domain | CNAME | Creating an A record instead |
Checking DNS Records Yourself
Before re-verifying in Lettr, confirm your records are publicly visible using command-line tools. Check the DKIM TXT record:v=DKIM1;.
Check the CNAME verification record:
sparkpostmail.com or the value shown in your dashboard.
Check the DMARC record:
v=DMARC1; p=none;).
Alternative using nslookup (Windows or macOS):
If the commands return no results, the records have not propagated yet or were not created correctly. Verify the record names and values in your DNS provider’s dashboard.
Verifying via API
Trigger Verification
Send a POST request to trigger Lettr to re-check your DNS records:Check Domain Status
Retrieve the current status of a domain and its DNS records:| Status | Meaning |
|---|---|
valid | Record found and matches the expected value |
unverified | Record found but has not been confirmed yet |
invalid | Record found but the value does not match |
missing | Record not found at the expected DNS name |
Provider-Specific Issues
Cloudflare
Cloudflare
Cloudflare’s proxy mode (orange cloud) rewrites DNS responses and will cause CNAME verification to fail. When adding CNAME records for Lettr, set the proxy status to DNS only (grey cloud).
- Go to your domain in Cloudflare.
- Open the DNS tab.
- Find the CNAME record you added for Lettr.
- Click the orange cloud icon to toggle it to grey (DNS only).
- Re-verify in Lettr.
GoDaddy
GoDaddy
GoDaddy’s DNS management interface can truncate long TXT values. DKIM public keys are typically 256+ characters, and GoDaddy may silently cut them off.Workarounds:
- Paste the full value and save, then re-open the record to confirm the complete value was stored.
- If GoDaddy splits the value into multiple strings (enclosed in quotes), this is normal and will still validate correctly.
- Consider using a different DNS provider (such as Cloudflare) if GoDaddy continues to truncate your records.
Providers That Don't Support Underscore Prefixes
Providers That Don't Support Underscore Prefixes
Some DNS providers do not allow record names starting with an underscore (
_). This is a problem because both _domainkey (DKIM) and _dmarc (DMARC) require underscore-prefixed names.Workarounds:- Check if your provider has an “advanced” or “raw” DNS editing mode that allows underscores.
- If your provider does not support underscores at all, you will need to move your DNS hosting to a provider that does (Cloudflare, Route 53, Namecheap, and most major providers support underscores).
When to Contact Support
If you have confirmed your DNS records are correct using thedig commands above and verification still fails, contact Lettr support.
Contact support when:
- Your domain has been stuck in
pendingstatus for more than 48 hours after adding the correct DNS records. - Your domain shows a
blockedstatus. This may indicate a policy issue that requires manual review. - You see
invalidstatus on a record that matches the expected value exactly.
dig commands listed above.
Related Topics
Domains Overview
Learn about domain types and how they work in Lettr.
Sending Domains
Full setup guide for configuring a sending domain with SPF, DKIM, and DMARC.
Tracking Domains
Set up a custom tracking domain for click and open tracking.
Cloudflare DNS Guide
Step-by-step DNS configuration for Cloudflare users.