---
title: Set up a custom sending domain for abandoned cart emails
date: "2026-11-06"
author: RocketCart
url: "https://getrocketcart.com/docs/sending-domain/set-up-sending-domain/"
type: docs
---

With a custom sending domain, RocketCart’s recovery emails come from your own address, for example `hello@yourstore.com`, instead of RocketCart’s shared address. To set it up, you enter the address in RocketCart, add three TXT records at the company that runs your domain’s DNS, click **Verify DNS**, and turn the domain on.

The records often work within minutes, but DNS changes can take up to 24 hours.

## Why send from your own domain?

- Shoppers see your address in the From line, so the email looks like it comes from your store.
- Mail providers such as Gmail and Yahoo check that a sender’s domain is authenticated with SPF, DKIM and DMARC. Your own authenticated domain builds its own sending reputation.
- Replies go to your address. RocketCart sets no separate reply-to address, so use a mailbox you read.

The sender name stays your store name in both cases.

## What does a Free merchant see?

On the Free plan, the **Custom Domain Configuration** section is blurred and you can’t click into it. It shows “This feature is only available on [basic, pro] plans. Please upgrade to access this feature.” and an **Upgrade your plan** button that opens Shopify’s plan page. See [Free and Pro plans](/docs/plans-and-billing/free-and-pro-plans/).

![The Custom Domain Configuration section blurred on the Free plan, with the Upgrade your plan button](/docs-media/en/sending-domain/free-gate-800.webp)

What the section looks like on the Free plan

## Step 1: Enter your From address

1. In RocketCart, go to **Settings**.
2. Open the **Email Settings** tab.
3. Under **Custom Domain Configuration**, type the address in **From Email Address**, for example `hello@yourstore.com`.
4. Click **Update Email**.

You see **Email updated successfully. DKIM keys generated.** Below the field, the **DNS records** panel appears with the badge **Disabled** and three tabs: **SPF**, **DKIM** and **DMARC**. Each tab shows **Missing** until its record is found.

Note

The domain is the part after the `@`. If you use a subdomain, such as `hello@mail.yourstore.com`, the domain is `mail.yourstore.com` and all three records belong to that subdomain. At most DNS providers the hosts below then become `mail`, `<selector>._domainkey.mail` and `_dmarc.mail`.

## Step 2: Add the three TXT records at your DNS provider

Open each tab in the **DNS records** panel. For a record that isn’t verified yet, the **Quick setup** box shows the **Host/Name**, and **Required value** shows the value. Click **Copy value** to copy it exactly.

All three records are of type **TXT**:

| Record | Type | Host / Name (most providers) | Full name | Value |
| --- | --- | --- | --- | --- |
| SPF | TXT | `@` | `yourstore.com` | `v=spf1 include:mailgun.org ~all` |
| DKIM | TXT | `<selector>._domainkey` | `<selector>._domainkey.yourstore.com` | `v=DKIM1; k=rsa; p=<your public key>` |
| DMARC | TXT | `_dmarc` | `_dmarc.yourstore.com` | `v=DMARC1; p=none` |

- `<selector>` is a name RocketCart creates for your store. If the app shows the full host with your selector, use exactly that. If it shows the literal word `<selector>`, your selector is your store name as RocketCart saved it on install: lowercase letters and numbers, hyphens between words, for example `my-store` for a store called “My Store”. Don’t remove or rename `_domainkey`.
- `<your public key>` is a long string RocketCart generated for your store when you clicked **Update Email**. Always copy it from the app.
- Most DNS providers add your domain to the host automatically. Enter `@`, `<selector>._domainkey` and `_dmarc` there. If your provider asks for the full name, use the “Full name” column.
- TTL: leave the provider’s default, or use 300 seconds (5 minutes) if you can choose.

Step-by-step guides for common providers:

- [Shopify (domains bought in Shopify)](/docs/sending-domain/shopify-domains/)
- [Cloudflare](/docs/sending-domain/cloudflare/)
- [GoDaddy](/docs/sending-domain/godaddy/)
- [IONOS](/docs/sending-domain/ionos/)
- [Namecheap](/docs/sending-domain/namecheap/)
- [Squarespace](/docs/sending-domain/squarespace/)
- [STRATO](/docs/sending-domain/strato/)
- [OVHcloud](/docs/sending-domain/ovhcloud/)
- [Aruba](/docs/sending-domain/aruba/)
- [one.com](/docs/sending-domain/one-com/)
- [TransIP](/docs/sending-domain/transip/)
- [Registro.br](/docs/sending-domain/registro-br/)

Warning

Add the records where your domain’s DNS is actually managed. That is the company your domain’s nameservers point to, which is not always the company you bought the domain from. Records added anywhere else have no effect.

### I already have an SPF record. What do I do?

A domain can only have one SPF record. With two, both fail. Don’t add a second record that starts with `v=spf1`. Edit the one you have and add `include:mailgun.org` to it, **before** the `~all` or `-all` at the end:

|  | Value |
| --- | --- |
| Your record now | `v=spf1 include:_spf.google.com ~all` |
| After your edit | `v=spf1 include:_spf.google.com include:mailgun.org ~all` |

Mail servers stop reading an SPF record at `~all` or `-all`, so an include placed after it is ignored. If the value RocketCart suggests ends with `include:mailgun.org`, move that part in front of `~all` when you paste it.

### I already have a DMARC record. What do I do?

Keep it. A domain should have only one DMARC record, and RocketCart accepts any valid DMARC record on `_dmarc`. Don’t add a second one.

### My provider split the DKIM value into two parts

That’s fine. The DKIM value is longer than 255 characters, and many providers store long values as several quoted parts. RocketCart joins them when it checks. If your provider refuses values longer than 255 characters (Shopify’s own DNS does), see [the Shopify domains page](/docs/sending-domain/shopify-domains/).

## Step 3: Verify the records

1. Back in RocketCart, go to **Settings > Email Settings**.
2. In the **DNS records** panel, click **Verify DNS**.
3. Check each tab. A found record shows **Verified**. The line **Status: 3/3 DNS records verified.** means all three are in place.

RocketCart only checks when you click **Verify DNS**. It doesn’t check in the background, so click it again after a while if a record still shows **Missing**.

**How long does it take?** Often a few minutes. The app allows up to 24 hours, because DNS changes take time to spread. Your provider’s own page may give a different time.

## Step 4: Turn on the domain

When all three records are verified, the switch **Enable custom domain** appears in the panel.

1. Turn on **Enable custom domain**.
2. You see **Custom domain enabled successfully**. The badge changes to **Enabled** and the panel says “Your custom domain is active and emails will be sent from your domain.”

From now on, recovery emails go out from your address.

## How do I stop using my domain or change the address?

- **To stop:** turn off **Enable custom domain**. You see **Custom domain disabled successfully**, and emails go back to RocketCart’s shared address.
- **To change the address on the same domain:** enter the new address in **From Email Address** and click **Update Email**.
- **To move to another domain:** enter the address on the new domain and click **Update Email**. The custom domain switches off. Add the three records for the new domain, verify them, and turn the domain on again.

## How can I check the records myself?

Use any online DNS lookup tool that shows TXT records, or run these commands in a terminal (replace `yourstore.com` and `<selector>`):

```
dig +short TXT yourstore.com
dig +short TXT <selector>._domainkey.yourstore.com
dig +short TXT _dmarc.yourstore.com
```

Each command should print the value you added. If it prints nothing, the record isn’t visible on the internet yet, or it was added under the wrong host.

Still not verifying? See [Sending domain not verifying](/docs/troubleshooting/sending-domain-not-verifying/).
