Set up your sending domain for Adapty Mail
Adapty Mail sends campaigns from your own domain — not from a shared address — so sender reputation stays under your control. You set this up once, and every campaign uses the same verified domain. For the minimum steps, see the domain section in Get started with Adapty Mail. This article covers the full setup, how verification works, and the automatic warm-up behavior.
Requirements
- Apex domain: Submit your root domain (for example,
yourapp.com), not a subdomain. Inputs likeapp.yourapp.comare rejected at validation. - Active NS records: The domain must resolve. Adapty Mail performs a DNS lookup during setup and refuses domains without valid NS records.
- One domain per Adapty project: A domain can’t be shared across projects. If the domain is already registered to any project — yours or someone else’s — setup fails.
Set up your sending domain
The setup wizard has three screens: enter the domain, confirm the generated subdomains, and add the DNS records. All three live in Settings → Email Domains.
-
Enter your domain. Type your apex domain into the Domain field and click Preview. Adapty Mail validates the format (ASCII, two labels, no leading or trailing hyphens, TLD of 2+ characters) and checks that DNS resolves.
-
Confirm subdomains. Adapty Mail generates two sending subdomains with fixed prefixes —
mail.yourapp.comandemail.yourapp.com— each with its own SES identity. It also creates a Mail-From subdomain under each (hello.mail.yourapp.comandhello.email.yourapp.com). Review them and click Confirm.
-
Add DNS records. The final screen lists every record to add — 10 total, 5 per sending subdomain, plus one optional DMARC record on the root. Use Download CSV to export the full list, or copy the records one by one into your registrar. Click Done when records are in place.
DNS record reference
For each sending subdomain (mail.yourapp.com and email.yourapp.com), add:
DKIM — 3 CNAME records. Cryptographic signatures that prove the email wasn’t altered in transit.
| Field | Format |
|---|---|
| Type | CNAME |
| Name | {token}._domainkey.{subdomain} |
| Value | {token}.dkim.amazonses.com |
Mail-From — 1 MX record. Handles bounces.
| Field | Format |
|---|---|
| Type | MX |
| Name | hello.{subdomain} (for example, hello.mail.yourapp.com) |
| Priority | 10 |
| Value | feedback-smtp.{region}.amazonses.com |
SPF — 1 TXT record. Authorizes Adapty to send on your behalf.
| Field | Format |
|---|---|
| Type | TXT |
| Name | hello.{subdomain} |
| Value | "v=spf1 include:amazonses.com ~all" |
On your root domain, add the optional DMARC record:
| Field | Format |
|---|---|
| Type | TXT |
| Name | _dmarc.{domain} |
| Value | v=DMARC1; p=reject |
Tokens, region, and any other values come from AWS SES at setup time. Always copy them from the DNS records screen in Adapty Mail, not from this reference.
How verification works
Once DNS records are in place, Adapty Mail polls DNS automatically, and you can also trigger checks manually.
- Automatic polling: Polling starts 5 minutes after you submit, then doubles each round — 10 min, 20 min, 40 min — before capping at 60 min. It continues until records are found or the 7-day window closes.
- Manual check: Click Check Verification to force an immediate check. There’s a 60-second cooldown between manual checks — triggering too fast returns “Verification check is on cooldown.”
- Status states: Each subdomain’s DKIM and Mail-From are tracked independently as Pending, Success, or Failed. A domain is considered fully verified only when all four statuses read Success.
- 7-day deadline: If verification doesn’t complete in 7 days, the identity is marked Failed. Your DNS records stay in your registrar — re-enter the domain in Settings → Email Domains to start a new window.
- After verification: If you remove or change DNS records later, AWS SES eventually downgrades the identity. Keep the records in place for as long as you plan to send.
- DNS propagation: Usually takes minutes; can take up to 48 hours in rare cases.
Domain warm-up
New domains have no reputation with email providers like Gmail or Yahoo, so high-volume sends from a fresh domain risk landing in spam. Adapty Mail handles warm-up automatically by ramping your daily send limit across 14 tiers. No configuration needed.
How tiers work
Your domain starts at Tier 1 (200 sends/day) and advances automatically when deliverability metrics stay healthy. If bounce rates rise or complaint rates climb, advancement pauses and can reverse until reputation recovers.
| Tier | Daily limit |
|---|---|
| 1 | 200 |
| 2 | 400 |
| 3 | 800 |
| 4 | 1,500 |
| 5 | 2,500 |
| 6 | 4,000 |
| 7 | 6,000 |
| 8 | 8,000 |
| 9 | 10,000 |
| 10 | 13,000 |
| 11 | 16,000 |
| 12 | 20,000 |
| 13 | 25,000 |
| 14 | 30,000 |
Your current tier and daily limit are shown in Settings → Email Domains.
Impact on launch by audience size
| Audience size | Effect at launch |
|---|---|
| Under 200 users | Full audience reached on day one |
| 200–2,000 users | Delivery spreads over several days |
| 2,000+ users | Delivery spreads over 1–2 weeks |
Launch your first campaign as soon as DNS verification completes. The sooner you start sending, the sooner your domain advances through tiers and reaches full daily capacity.
Limitations
- One domain per project: You can only have one sending domain per Adapty project. To switch to a different domain, contact support — the dashboard has no “change domain” action.
- Cross-project uniqueness: A domain already registered to another project can’t be reused. If you see “Domain is already registered to another project”, pick a different domain or reach out to support.
- Verified domains can’t be deleted: Once any subdomain reaches Success, the dashboard blocks deletion. Pending domains can be deleted, but you still need to remove the DNS records manually from your registrar.
- Fixed subdomain prefixes:
mail.,email., and thehello.Mail-From prefix are hardcoded — they can’t be customized. If those subdomains are already in use in your DNS, setup will conflict. - Apex domains only: Subdomain inputs, trailing dots, and single-label hostnames are rejected.
- No internationalized domains: Punycode and IDN aren’t supported. The domain must be ASCII-only.
Troubleshooting
| Issue | Solution |
|---|---|
| ”Enter a valid domain (e.g. example.com)“ | Check the input: apex only, ASCII only, TLD of 2+ characters, no leading or trailing hyphens. |
| ”Domain does not have valid DNS records” | The apex domain itself must resolve. Confirm your NS records are active before retrying. |
| ”Domain is already registered to another project” | Pick a different domain, or contact support if you believe the registration is a mistake. |
| ”Verification check is on cooldown” | Wait 60 seconds between manual checks. Automatic polling continues in the background. |
| Verification stuck on Pending | Check that DNS records match exactly — no trailing dots, correct CNAME targets. DNS can take up to 48 hours to propagate. |
| ”Cannot delete domain: one or more identities have been successfully verified” | A verified domain can’t be removed from the dashboard. Contact support for assistance. |
| Emails going to spam | Confirm your DMARC record is published. New domains need warm-up time — review Domain warm-up. |
| High bounce rate | Verify your audience list contains valid, opted-in addresses. Bounces slow or pause tier advancement. |