Skip to main content
Setting up a custom sending domain improves deliverability and allows you to send from your own email addresses. This guide covers the general process that works with any DNS provider.
Using a specific provider? We have dedicated guides for Cloudflare, Vercel, Namecheap, Porkbun, and more.

Why Use a Custom Domain?

  • Better deliverability: Email providers trust authenticated domains
  • Brand consistency: Send from [email protected] instead of a shared domain
  • Full control: Manage your sender reputation independently

Prerequisites

  • Access to your domain’s DNS settings (usually through your registrar or hosting provider)
  • An Ark account with API access

Step 1: Add Your Domain

  1. Go to Domains in your Ark dashboard
  2. Click Add Domain
  3. Enter your domain name (e.g., mail.yourdomain.com)
  4. Copy the DNS records shown
The API response includes the DNS records you need to add:
{
  "data": {
    "id": "dom_abc123",
    "name": "mail.yourdomain.com",
    "verified": false,
    "dnsRecords": {
      "zone": "yourdomain.com",
      "spf": {
        "type": "TXT",
        "name": "mail",
        "fullName": "mail.yourdomain.com",
        "value": "v=spf1 a mx include:spf.arkhq.io ~all",
        "status": null
      },
      "dkim": {
        "type": "TXT",
        "name": "ark-abc123._domainkey.mail",
        "fullName": "ark-abc123._domainkey.mail.yourdomain.com",
        "value": "k=rsa;t=s;p=MIGfMA0GCSqGSIb3DQEB...",
        "status": null
      },
      "returnPath": {
        "type": "CNAME",
        "name": "psrp.mail",
        "fullName": "psrp.mail.yourdomain.com",
        "value": "rp.arkhq.io",
        "status": null
      }
    }
  }
}
Understanding the response:
  • zone - The DNS zone where you’ll add records (your root domain)
  • name - The relative hostname to enter in your DNS provider (most providers auto-append the zone)
  • fullName - The complete FQDN for reference
  • value - The record value to copy
For a root domain like yourdomain.com, the SPF name would be @ (representing the apex).

Step 2: Configure DNS Records

Add the following records to your DNS provider. Most providers auto-append your domain name, so use the name field (not fullName).

SPF Record

SPF tells receiving servers which IPs are authorized to send email for your domain.
FieldValue
TypeTXT
NameUse the name from the API (e.g., mail for subdomains, @ for root)
Valuev=spf1 a mx include:spf.arkhq.io ~all
TTL3600 (or Auto/Default)
Already have an SPF record? Edit your existing record instead of creating a new one. Add include:spf.arkhq.io to your existing record. Only one SPF record is allowed per domain.Example: v=spf1 include:spf.arkhq.io include:_spf.google.com ~all

DKIM Record

DKIM cryptographically signs your emails to prove they came from your domain.
FieldValue
TypeTXT
NameUse the name from the API (e.g., ark-abc123._domainkey.mail)
ValueThe DKIM value from the API response (starts with k=rsa;t=s;p=...)
TTL3600 (or Auto/Default)

Return Path (CNAME)

The return path handles bounce messages and improves deliverability.
FieldValue
TypeCNAME
NameUse the name from the API (e.g., psrp.mail)
Valuerp.arkhq.io
TTL3600 (or Auto/Default)

Step 3: Verify Your Domain

After adding DNS records, wait for propagation (usually a few minutes, can take up to 48 hours) and verify:
Go to Domains and click Verify DNS records on your domain.
Success! Once all three records show status OK, you can send emails from any address at your domain (e.g., [email protected], [email protected]).

Optional: DMARC Configuration

DMARC adds another layer of authentication and tells receiving servers how to handle emails that fail authentication. Add this TXT record:
FieldValue
TypeTXT
Name_dmarc.mail (or _dmarc for root domain)
Valuev=DMARC1; p=none; rua=mailto:[email protected]
Start with p=none to monitor, then move to p=quarantine or p=reject once you’re confident in your configuration.

Troubleshooting

  • Check DNS propagation: Use dnschecker.org to verify records are visible globally
  • Check record values: Ensure you copied the exact values from the API response
  • Check record names: Use the name field, not fullName - most DNS providers auto-append your domain
  • Wait and retry: DNS can take up to 48 hours to propagate fully
  • You can only have one SPF record per domain
  • If you have multiple email services, combine them: v=spf1 include:spf.arkhq.io include:_spf.google.com ~all
  • SPF has a 10 DNS lookup limit. Use SPF checker tools to verify
For subdomains like mail.yourdomain.com:
  • SPF name: mail (not @)
  • DKIM name: ark-xyz._domainkey.mail
  • Return Path name: psrp.mail
For root domains like yourdomain.com:
  • SPF name: @
  • DKIM name: ark-xyz._domainkey
  • Return Path name: psrp

Next Steps