Documentation

Send through AnitaHost Mail.

Use authenticated SMTP or the HTTP API. Every message from an active domain is signed with DKIM before it leaves the relay.

Quick start

  1. Create an account and verify your email address.
  2. Add your sending domain. We generate a DKIM key and show the DNS records.
  3. Publish the DKIM TXT record, then click Verify. The domain becomes active automatically.
  4. Create an SMTP credential or an API key and start sending.

Sending is blocked until your email is verified and the sender domain is active. This protects deliverability for everyone on the relay.

SMTP settings

Hostsuper.anitahostmail.com
Port587 STARTTLS or 465 implicit TLS
AuthenticationPLAIN or LOGIN (required)
UsernameThe SMTP username shown in your dashboard
PasswordThe password shown when the credential was created

Port 25 is rate-limited and not recommended for client submission. Always use TLS.

WHM / cPanel / Exim

In WHM, open Exim Configuration Manager → Mail → Smarthost Support and use super.anitahostmail.com:587 with SMTP authentication and TLS enabled. Use the SMTP username and password from this portal.

If your version has no smarthost panel, add a manualroute router that sends non-local domains to super.anitahostmail.com::587, a smtp transport with hosts_require_auth and hosts_require_tls, and a PLAIN authenticator using your portal credentials.

Before sending from a domain hosted on that server, add the domain here and publish its DKIM record. Otherwise the relay rejects the sender domain. The cPanel plugin below automates this step.

DNS records

For each sending domain, the dashboard shows a DKIM record. Publish it at the exact name shown. We also recommend SPF and DMARC:

TypeNameValue
TXTmail._domainkey.yourdomain.comShown in the domain page (generated per domain)
TXTyourdomain.comv=spf1 include:relay.anitahostmail.com ~all
TXT_dmarc.yourdomain.comv=DMARC1; p=none;

If you already have an SPF record, merge include:relay.anitahostmail.com into it instead of creating a second record. DNS changes can take a few minutes to propagate.

HTTP API

Send JSON to POST https://anitahostmail.com/api/v1/send with a bearer API key. The maximum is 50 recipients per request and 1 MB of content.

API keys have scopes: Sending for /api/v1/send and Domain management for the domain endpoints. Create a key with the scopes you need in the dashboard.

curl -X POST https://anitahostmail.com/api/v1/send \
  -H "Authorization: Bearer ah_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "from": {"email": "app@yourdomain.com", "name": "Your App"},
    "to": [{"email": "customer@example.com", "name": "Customer"}],
    "reply_to": "support@yourdomain.com",
    "subject": "Your receipt",
    "text": "Thanks for your order.",
    "html": "<p>Thanks for your order.</p>"
  }'

Successful requests return 202:

{"id":"8f2...","status":"queued","accepted":1,"failed":[]}

Each recipient is delivered as an individual message, so recipients never see each other. The sender domain must be active on your account. Of the from, to, subject, text and html fields, provide valid addresses and a subject; at least one of text or html is required.

API keys are shown once at creation. Revoke a key at any time from the dashboard.

Domain API

These endpoints require an API key with the Domain management scope. Responses include the DKIM, SPF and DMARC records to publish.

MethodEndpointPurpose
GET/api/v1/domainsList domains on the account
POST/api/v1/domainsAdd one domain: {"domain":"example.com"}
POST/api/v1/domains/syncAdd many domains: {"domains":["a.com","b.com"]}
GET/api/v1/domains/{domain}Get DNS records and status
POST/api/v1/domains/{domain}/verifyRe-check the DKIM TXT record
DELETE/api/v1/domains/{domain}Remove the domain and its key
curl -X POST https://anitahostmail.com/api/v1/domains \
  -H "Authorization: Bearer ah_live_your_domain_key" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com"}'

cPanel / WHM auto-signing plugin

The plugin registers every domain in /etc/userdomains with this portal, publishes the generated DKIM, SPF and DMARC records into local cPanel DNS zones, and re-checks verification. It runs every 15 minutes and can be triggered from WHM → Plugins → AnitaHost Mail.

Run this on the cPanel server as root. The API key is entered after installation from the WHM plugin screen:

curl -fsSL https://anitahostmail.com/downloads/anitahost-cpanel.tar.gz -o /tmp/anitahost-cpanel.tar.gz
tar -xzf /tmp/anitahost-cpanel.tar.gz -C /tmp
bash /tmp/anitahost-cpanel/install.sh

Then open WHM → Plugins → AnitaHost Mail, paste an API key with the Domain management scope, and save. Domain sync runs every 15 minutes after that.

If the server does not host authoritative DNS for those domains (for example, DNS is at Cloudflare), add --no-dns. The plugin will still register the domains and show the records to publish manually in the portal.

Uninstall with:

curl -fsSL https://anitahostmail.com/downloads/anitahost-cpanel-uninstall.sh -o /tmp/anitahost-cpanel-uninstall.sh
bash /tmp/anitahost-cpanel-uninstall.sh

The plugin does not configure the Exim smarthost; use the settings in the section above for that.

Error responses

StatusCodeMeaning
400invalid_from, invalid_recipients, invalid_subject, missing_contentFix the request payload.
401missing_api_key, invalid_api_keyProvide a valid bearer key.
403sender_not_allowed, email_unverified, account_suspended, insufficient_scopeVerify your email, activate the domain, add the right API key scope, or contact support.
409domain_conflictThe domain is already assigned to another account.
429daily_limit_reached, rate_limitedUpgrade your plan or wait for the window to reset.
502send_failedThe relay could not queue the message.

Limits

Quotas are measured per recipient over a rolling 24-hour window. SMTP and API messages share the same quota. A per-minute rate limit also applies. Rejected messages do not count toward the quota.

Current plan limits are shown on the pricing page and in your dashboard.