> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tightknit.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Email Domain DNS Setup

> Step-by-step guide to configuring SPF, DKIM, and MX records for your custom email domain

## Overview

When you set up a custom email domain in Tightknit, you need to add DNS records so that email
providers (Gmail, Outlook, etc.) can verify that messages sent from your domain are legitimate.
Without these records, your emails may land in spam or be rejected entirely.

Once verified, your custom email domain is used for all outgoing emails from Tightknit, including
member notification emails and magic link login emails. For example, if you configure `mail.example.com`,
your members will receive login emails from `login@mail.example.com` instead of the default
Tightknit sender address.

This guide explains what each record type does and walks you through adding them at popular DNS
providers.

## Understanding the DNS records

<CardGroup cols={2}>
  <Card title="SPF (TXT record)" icon="shield-check">
    **Sender Policy Framework** tells receiving mail servers which IP addresses are allowed to send
    email on behalf of your domain. It prevents others from spoofing your address.
  </Card>

  <Card title="DKIM (CNAME record)" icon="key">
    **DomainKeys Identified Mail** adds a cryptographic signature to every outgoing message so
    receivers can verify the email was not altered in transit.
  </Card>

  <Card title="MX record" icon="envelope">
    **Mail Exchange** records specify which servers handle incoming email for the domain. They are
    required for proper email routing and bounce handling.
  </Card>
</CardGroup>

## General setup steps

<Steps>
  <Step title="Copy the DNS records from Tightknit">
    In the [Email Domain settings](https://studio.tightknit.ai/-/website/notifications/domain),
    each required record is displayed with its **Type**, **Host / Name**, **Value**, and **TTL**.
    Use the copy button next to each value.
  </Step>

  <Step title="Log in to your DNS provider">
    Open the dashboard for the service where your domain's nameservers are managed (e.g.,
    Cloudflare, GoDaddy, or Namecheap).
  </Step>

  <Step title="Navigate to DNS management">
    Find the DNS records section for the domain or subdomain you are configuring.
  </Step>

  <Step title="Add each record">
    Create a new record for each entry shown in Tightknit. Make sure the **Type**, **Name**, and
    **Value** match exactly. See the provider-specific instructions below.
  </Step>

  <Step title="Verify in Tightknit">
    Return to the Email Domain settings page and click **"I've added the records"** to trigger
    verification.
  </Step>
</Steps>

## Provider-specific instructions

<Tabs>
  <Tab title="Cloudflare">
    1. Log in to the **Cloudflare dashboard** and select the domain you are configuring.
    2. Go to **DNS > Records**.
    3. Click **Add record**.
    4. Select the correct **Type** (TXT, CNAME, or MX) from the dropdown.
    5. In the **Name** field, enter the value from the "Host / Name" column.
    6. In the **Content** (or Target) field, paste the value from the "Value" column.
    7. For MX records, enter the **Priority** value if one is provided.
    8. Set the **Proxy status** to **DNS only** (grey cloud). Mail records must not be proxied.
    9. Click **Save** and repeat for each record.

    <Warning>
      CNAME records used for DKIM must have the proxy toggled off (DNS only). Cloudflare proxying
      rewrites responses and will break DKIM verification.
    </Warning>
  </Tab>

  <Tab title="GoDaddy">
    1. Log in to your **GoDaddy account** and navigate to **My Products > DNS** for the domain.
    2. Scroll down to the **Records** section and click **Add**.
    3. Choose the record **Type** from the dropdown (TXT, CNAME, or MX).
    4. In the **Name** (or Host) field, enter the value from the "Host / Name" column. GoDaddy
       automatically appends the root domain, so enter only the subdomain portion.
    5. In the **Value** field, paste the value from the "Value" column.
    6. For MX records, set the **Priority** field to the value shown.
    7. Set the **TTL** to the recommended value or leave the default.
    8. Click **Save** and repeat for each record.

    <Tip>
      GoDaddy automatically appends your domain to the Name field. If the full record name is
      `resend._domainkey.mail.example.com`, enter only `resend._domainkey.mail` in the Name field.
    </Tip>
  </Tab>

  <Tab title="Namecheap">
    1. Log in to your **Namecheap account** and go to **Domain List > Manage > Advanced DNS**.
    2. Under **Host Records**, click **Add New Record**.
    3. Select the record **Type** (TXT Record, CNAME Record, or MX Record).
    4. In the **Host** field, enter the subdomain portion of the name. Namecheap appends the root
       domain automatically.
    5. In the **Value** (or Target) field, paste the value from the "Value" column.
    6. For MX records, enter the **Priority** value in the dedicated field.
    7. Set **TTL** to "Automatic" or a low value like 5 minutes while setting up.
    8. Click the green checkmark to save, then repeat for each record.

    <Tip>
      If you are using Namecheap BasicDNS, the MX record priority is set in a separate "Priority"
      column next to the Value field.
    </Tip>
  </Tab>
</Tabs>

## Send a test email

After your domain is verified, you can confirm end-to-end deliverability by sending a test email
directly from the settings page.

<Steps>
  <Step title="Navigate to Email Domain settings">
    Go to **Site > Notifications > Email Domain** in the
    [Admin Studio](https://studio.tightknit.ai/-/website/notifications/domain).
  </Step>

  <Step title="Click Send test email">
    Below the verified domain card, click the **"Send test email"** button. A test message will be
    sent from your custom domain to the email address associated with your admin account.
  </Step>

  <Step title="Check your inbox">
    Verify that the test email arrives in your inbox (check spam/junk if needed). The email is
    clearly labeled as a test and shows the sender address from your custom domain.
  </Step>
</Steps>

<Tip>
  There is a short cooldown after sending a test email. Wait 30 seconds before sending another.
</Tip>

## DNS propagation

After adding or updating DNS records, it can take time for the changes to propagate across the
internet. Propagation times depend on your provider and the TTL (Time To Live) values.

* **Typical wait:** 5 minutes to 1 hour for most providers.
* **Maximum:** Up to 48 hours in rare cases.
* **TTL tip:** If your provider lets you set a TTL, use a low value like `300` (5 minutes) while
  you are setting up. You can increase it later.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Records not verifying after 48 hours">
    Double-check that each record's type, name, and value match exactly what is shown in the
    settings page. Even an extra space or trailing period can cause verification to fail.
  </Accordion>

  <Accordion title="Wrong record type selected">
    Make sure you select the correct type (TXT, CNAME, or MX) as shown in the "Type" column. Some
    DNS providers default to type A, which will not work.
  </Accordion>

  <Accordion title="Extra spaces or quotes in the value">
    Some DNS dashboards add surrounding quotes automatically. If yours does not, paste the value
    exactly as provided. Do not add quotes yourself.
  </Accordion>

  <Accordion title="Conflicting existing records">
    If there is already an SPF record for the domain, you may need to merge the new value into the
    existing record rather than creating a duplicate. Multiple SPF records for the same domain can
    cause delivery failures.
  </Accordion>

  <Accordion title="How to check your records">
    You can verify that records are published by using free online DNS lookup tools. Search for "DNS
    TXT lookup" or "DNS CNAME lookup" and enter your domain to see what is currently published.
  </Accordion>
</AccordionGroup>


## Related topics

- [Notifications](/community-site/notifications.md)
- [Invite and activate members](/guides/invite-and-activate-members.md)
- [Troubleshooting](/support/troubleshooting.md)
- [Studio Settings](/studio/settings.md)
- [Salesforce](/integrations/salesforce.md)
