Skip to main content
A sending domain is the domain you use in the “From” address of your emails, such as yourcompany.com in hello@yourcompany.com. Configuring a sending domain allows you to authenticate your emails with SPF, DKIM, and DMARC, which tells email providers that Lettr is authorized to send on your behalf. This authentication is essential for reaching inboxes instead of spam folders, building brand trust, and maintaining a positive sender reputation over time.

Why Use a Sending Domain?

Configuring a sending domain provides four key benefits:
  • Authentication — Authenticated emails pass SPF and DKIM checks, which significantly reduces the chance of being flagged as spam
  • Brand trust — Recipients see your own domain in the “From” address rather than a generic or shared sender
  • Sender reputation — Consistent sending from your domain builds a positive reputation that improves inbox placement across all providers
  • Advanced features — A verified sending domain is a prerequisite for DMARC enforcement and BIMI, which displays your logo alongside your emails in supported clients

Adding a Sending Domain

1

Add domain in Dashboard

Go to Domains → Sending Domains and click + New Sending Domain. Enter your domain name.
2

Configure DNS Records

Add the required DNS records (see table below—root domains need SPF, DKIM, DMARC; subdomains need DKIM, DMARC, and Bounce CNAME only).
3

Verify Domain

Click Verify to confirm DNS propagation. Verification typically takes a few minutes but can take up to 48 hours.

Via API

Create a sending domain with the API:
curl -X POST https://app.lettr.com/api/domains \
  -H "Authorization: Bearer lttr_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com"
  }'
Response with DNS records to configure:
{
  "message": "Domain created successfully.",
  "data": {
    "domain": "example.com",
    "status": "pending",
    "status_label": "Pending Review",
    "dkim": {
      "public": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ...",
      "selector": "scph0722",
      "headers": "from:to:subject:date"
    }
  }
}

DNS Records Configuration

After adding your domain, configure these DNS records with your DNS provider:

CNAME Record (Domain Verification)

The CNAME record verifies domain ownership and enables bounce handling.
FieldValue
TypeCNAME
Host/Name@ (root domain)
Valuesparkpostmail.com

DKIM Record

DKIM (DomainKeys Identified Mail) enables email signing to verify message authenticity.
FieldValue
TypeTXT
Host/Name{selector}._domainkey (selector provided by Lettr)
Valuev=DKIM1; k=rsa; h=sha256; p=... (provided by Lettr)
The DKIM selector and public key are unique to your domain and will be provided when you add your domain. The selector might look like scph0722, so your full hostname would be scph0722._domainkey.example.com. Copy the values exactly as shown.

DMARC Record

DMARC ties together SPF and DKIM to protect against spoofing. Start with a monitoring policy:
FieldValue
TypeTXT
Host/Name_dmarc
Valuev=DMARC1; p=none; rua=mailto:dmarc@example.com
See our DMARC guide for recommended rollout strategies and policy options.

Verifying Your Domain

After configuring DNS records, verify your domain:

Via Dashboard

  1. Go to DomainsSending
  2. Find your domain and click Verify
  3. Wait for verification to complete (usually within a few minutes)

Via API

curl -X POST https://app.lettr.com/api/domains/example.com/verify \
  -H "Authorization: Bearer lttr_xxxxxxxxxxxx"
Response:
{
  "message": "Domain verification completed.",
  "data": {
    "domain": "example.com",
    "dkim_status": "valid",
    "cname_status": "valid",
    "dmarc_status": "valid",
    "spf_status": "valid",
    "ownership_verified": true,
    "is_primary_domain": true
  }
}

Domain Status

Verification Status

Each DNS record has its own verification status:
StatusDescription
validRecord found and valid
unverifiedRecord not yet detected
invalidRecord found but invalid
missingNo record found
not_applicableRecord not required for this domain type (e.g., SPF on subdomains, CNAME on root domains)

Approval Status

Sending domains also have an approval status that determines whether you can send emails:
StatusLabelCan Send?
approvedApprovedYes
pendingPending ReviewNo
blockedBlockedNo
Lettr automatically evaluates new domains for approval based on domain age, reputation, and other factors. Most legitimate business domains are approved automatically.

Check Domain Status

Via API

curl https://app.lettr.com/api/domains/example.com \
  -H "Authorization: Bearer lttr_xxxxxxxxxxxx"
{
  "message": "Domain retrieved successfully.",
  "data": {
    "domain": "example.com",
    "status": "approved",
    "status_label": "Approved",
    "can_send": true,
    "cname_status": "valid",
    "dkim_status": "valid",
    "dmarc_status": "valid",
    "spf_status": "valid",
    "is_primary_domain": true,
    "tracking_domain": "links.example.com",
    "dns_provider": "cloudflare",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:35:00Z"
  }
}

Sending Emails from Your Domain

Once verified, you can send emails from any address on your domain:
curl -X POST https://app.lettr.com/api/emails \
  -H "Authorization: Bearer lttr_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@example.com",
    "to": ["recipient@other.com"],
    "subject": "Welcome!",
    "html": "<p>Thanks for signing up!</p>"
  }'

Using a From Name

Customize the sender display name:
curl -X POST https://app.lettr.com/api/emails \
  -H "Authorization: Bearer lttr_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@example.com",
    "from_name": "Your Company",
    "to": ["recipient@other.com"],
    "subject": "Welcome!",
    "html": "<p>Thanks for signing up!</p>"
  }'
This appears in email clients as: Your Company <hello@example.com>

Multiple Sending Domains

You can verify multiple domains for different purposes:
DomainUse Case
yourcompany.comGeneral business communications
mail.yourcompany.comMarketing and newsletters
notifications.yourcompany.comAutomated transactional emails
support.yourcompany.comCustomer support communications
Using subdomains for different email types helps isolate reputation. If marketing emails generate complaints, your transactional email reputation remains protected.

Associating a Tracking Domain

Link a tracking domain to your sending domain for branded tracking links:

Via Dashboard

  1. Go to DomainsSending
  2. Select your sending domain
  3. Under Tracking Domain, select or add a tracking domain

List All Sending Domains

curl https://app.lettr.com/api/domains \
  -H "Authorization: Bearer lttr_xxxxxxxxxxxx"
{
  "message": "Domains retrieved successfully.",
  "data": [
    {
      "domain": "example.com",
      "status": "approved",
      "status_label": "Approved",
      "can_send": true,
      "cname_status": "valid",
      "dkim_status": "valid",
      "created_at": "2024-01-15T10:30:00Z",
      "updated_at": "2024-01-15T10:35:00Z"
    },
    {
      "domain": "notifications.example.com",
      "status": "approved",
      "status_label": "Approved",
      "can_send": true,
      "cname_status": "valid",
      "dkim_status": "valid",
      "created_at": "2024-01-15T11:00:00Z",
      "updated_at": "2024-01-15T11:05:00Z"
    }
  ]
}

Delete a Sending Domain

Deleting a domain removes all associated DNS verification. You won’t be able to send emails from this domain until it’s re-added and verified.

Via Dashboard

  1. Go to DomainsSending
  2. Find the domain and click the Delete button
  3. Confirm deletion

Via API

curl -X DELETE https://app.lettr.com/api/domains/example.com \
  -H "Authorization: Bearer lttr_xxxxxxxxxxxx"

Troubleshooting

  • DNS changes can take up to 48 hours to propagate, though most complete within minutes
  • Verify records are added to the correct domain/subdomain
  • Check for typos in record values
  • Ensure you’re using the correct record type (TXT vs CNAME)
  • Try using a DNS lookup tool like MXToolbox to verify your records
  • Ensure the entire DKIM value is copied (it’s a long string)
  • Check that the hostname uses the correct selector (e.g., scph0722._domainkey, not just _domainkey)
  • Some DNS providers require you to remove quotes from the value
  • Verify the record type is TXT, not CNAME
  • Ensure the CNAME record points to sparkpostmail.com
  • The CNAME should be set on your root domain
  • Some DNS providers don’t allow CNAME on root domains - contact support for alternatives
  • New domains undergo automatic approval review
  • Domains less than 30 days old may require manual review
  • Contact support if your domain remains pending for more than 24 hours
  • Check that domain status is approved, not just verified
  • Verify your API key has permission to send emails
  • Ensure you’re using the exact domain that was verified

Best Practices

  • Separate email types — Use different subdomains (e.g., mail.example.com for marketing, notifications.example.com for transactional) so that complaints against one type don’t affect the reputation of another
  • Start DMARC gradually — Begin with a p=none policy to monitor authentication results before moving to stricter enforcement — jumping straight to p=reject can block legitimate emails if your configuration isn’t complete
  • Configure a tracking domain — Set up a tracking domain so that open and click tracking links use your brand instead of Lettr’s default domain, improving both deliverability and recipient trust
  • Monitor deliverability — Check your metrics regularly through the Lettr dashboard, and keep your DNS records updated if you change email infrastructure providers