Skip to main content

Custom Domains

By default, agents send email from @useanima.sh. Add your own domain so agents send from an address like agent@yourcompany.com, improving deliverability and trust with recipients.

How it works

Anima uses a hybrid email architecture that separates inbound and outbound delivery:
DirectionHandled byWhat it does
InboundAnima mail serverReceives incoming mail via SMTP and stores it in agent mailboxes
OutboundAWS SESSends outgoing mail with DKIM signatures and manages delivery reputation
StorageAnimaPersists every message and indexes it for search
This split means your DNS records point to two different destinations depending on direction:
RecordPoints toDirection
MX (@)mail.useanima.shInbound
SPF TXT (@)include:amazonses.comOutbound
MAIL FROM MX/TXT (mail)SES feedback endpoint + SPFOutbound bounce handling
DKIM CNAMESES-managed keysOutbound signing
DMARC TXT (_dmarc)Your reporting addressPolicy enforcement

Add your domain

1

Create the domain in Anima

Go to Dashboard → Domains, click Add domain, and enter your root domain — for example yourcompany.com. Anima immediately shows the DNS records you need to publish.
2

Copy the required DNS records

Anima generates all required records for you. Add each one to your DNS provider:
RecordHostPurpose
TXT@Proves you control the domain
MXmailRoutes SES bounce traffic
TXTmailSPF for the SES custom MAIL FROM subdomain
CNAMEtoken-a._domainkeyPublishes DKIM keys
MX@Routes inbound agent mail to Stalwart
TXT@ (merge)Authorizes outbound mail via SPF
TXT_dmarcSets DMARC policy for the domain
If you already have an SPF record at @, add include:amazonses.com to the existing record rather than creating a second one. A domain must have exactly one SPF TXT record.
3

Enter records in your DNS provider

Most providers automatically append your root domain to host values. Paste the Host column from Anima directly — for example _dmarc, not _dmarc.yourcompany.com — to avoid creating duplicate suffixes.Provider notes:
  • Cloudflare — Appends root domain automatically. Use short host values.
  • Route 53 — Supports manual entry; double-check long TXT values after pasting.
  • Namecheap — Use @, mail, and _dmarc as host values.
  • GoDaddy — Treat host fields as relative names unless the UI asks for a full FQDN.
4

Download the zone file (optional)

If your DNS provider supports BIND-format imports, use the Download zone file button in the Anima DNS setup view to publish all records at once.
5

Verify

Click Verify records in Anima. Each record shows one of three statuses:
  • Valid — Correct. No changes needed.
  • Missing — Not published yet, or still propagating. Wait and retry.
  • Invalid — Published but the value is wrong. Compare the Anima row against your DNS provider and correct it.
DNS propagation typically takes a few minutes but can take up to 48 hours with some providers.

AWS SES setup for outbound mail

Custom domain sending requires an AWS SES account. Complete this checklist before expecting outbound delivery to work:
  1. Pick the SES region you want to send from.
  2. Create an SES domain identity for your sending domain.
  3. Publish the SES Easy DKIM CNAME records in your DNS provider.
  4. Configure SES custom MAIL FROM for mail.<domain> and publish its MX and SPF TXT records.
  5. Merge include:amazonses.com into your root SPF record.
  6. Create an IAM user or role with ses:SendEmail and ses:SendRawEmail permissions.
  7. Store the SES region and credentials in your application’s secrets manager.
  8. Configure SNS bounce and complaint notifications.
  9. Request SES production access so you can send to non-verified recipients.
Do not point your apex MX record to SES. The apex MX must point to mail.useanima.sh for inbound agent mail. SES is only used for outbound.