Switching to Sairaph Mail
What you'll do: move an agent's mail over to Sairaph Mail - the domain, the mailboxes, the send-and-receive calls, and your bounce and complaint suppressions - grounded in what the product does today. If you are only starting on a Sairaph brand domain, most of this collapses to two dashboard steps. If you are bringing a custom domain and migrating off another transactional-email provider, the sections below cover each real mechanical step.
Last updated July 8, 2026
Before you start
- A Sairaph Mail account. Every plan includes an instant mailbox on a Sairaph brand domain, so you can send and receive before any DNS is touched.
- Access to your domain's DNS host, only if you are bringing a custom domain.
- Your agent's current sending code, so you can repoint it.
1. Point a domain at Sairaph, or start on a brand domain
You have three options, and only one of them involves DNS.
- Use a Sairaph brand domain (no DNS). Hosted mailboxes default to
sairaph.email,sai.email, orsent.ac. They are ready the moment you create them, with DKIM, suppression, and the relay handled for you. If a branded-but-not-your-own address is fine, skip straight to step 2. - Buy a custom domain through Sairaph. On a plan that includes a domain credit (Agent and up), you can register a domain at checkout. Sairaph places the order through its registrar, attaches its nameservers, and configures it to host email. Provisioning is asynchronous and the dashboard shows live status. There is no DNS for you to edit in this path.
- Bring a custom domain you already own. Add the DNS records the dashboard shows you at your current registrar or DNS host - an
MXrecord plus a DKIM key - publish them, and Sairaph verifies the domain before it can host mailboxes. Once verified it behaves like a managed domain, with DKIM signing, suppression, and the SES relay handled for you.
Two honest limits to plan around: the first-domain credit covers first-year *registration* on a domain you buy through Sairaph, so a domain you bring has nothing to register and the credit does not apply to it; and *transfer-in* (moving a domain's registration over to Sairaph) is planned for a later release, not available today. See the domains FAQ for the details per plan.
2. Provision your hosted mailboxes
In Dashboard → Mailboxes → New mailbox, create each mailbox your agents need on a brand domain or your verified custom domain. Each mailbox has a public id of the form mbx_… - the id you pass on every API call, in place of an email address.
Then issue a scoped API key per the access each agent needs. Keys are dashboard-issued only; the issuance surface is deliberately not agent-callable, so a leaked key cannot mint or revoke another. Pick read_write for an agent that sends and reads (it also carries the suppression scopes you need in step 4), or read for one that only reads codes or replies.
For the full walkthrough of provisioning and keys, see give your AI agent an email address.
3. Repoint your agent's send and receive calls
Sairaph Mail's agent-facing surface is a REST API and a first-party MCP server, not an SMTP host. Migrating your send path means swapping your old provider's API call for Sairaph's endpoint and auth, not reconfiguring an SMTP relay in your agent.
To send, call the outbound endpoint with your sm_live_… key as a Bearer token. The Idempotency-Key header is required on send, so a retried request can never double-send.
The call returns immediately with a server-generated id while a background worker delivers via the relay with retries:
To receive - the half a transactional send-API usually cannot give you - read inbound over the same REST surface. direction=inbound reads the cache; add live=true to force an on-demand fetch with a cached fallback, which is the pattern you want when an agent is blocking on a one-time code or a reply.
If your agent runtime speaks MCP, point it at the server instead and the mailbox's actions appear as tools, authed with the same key.
4. Reconcile your suppression list
Be precise about what "porting a suppression list" means here, because Sairaph's suppression model is not an upload target.
Sairaph maintains a suppression list per mailbox, automatically: hard bounces and complaints are suppressed for you as they happen, so you do not resend to an address that already bounced or complained. The API lets you read and lift those entries, but there is no bulk-import endpoint to preload your previous provider's list. Concretely, with a read_write (or management) key you can:
Lifting is deliberate and safe: Sairaph clears the entry at the upstream mail provider first and only then marks it lifted, so a success response always means the recipient is genuinely unsuppressed. The row is kept for audit history rather than hard-deleted.
So the practical migration play is:
- Export your old provider's suppression list and keep it as your own known-bad set. Since there is no import, the cleanest protection is to have your agent skip sends to those addresses until Sairaph's own list rebuilds naturally from live bounces and complaints.
- Do not re-send to a previously bouncing address just because Sairaph starts clean. A fresh list does not make a dead mailbox deliverable; it just means Sairaph has not learned it yet.
- Lift a false positive with the calls above if a real recipient was suppressed by mistake.
For how the guard rails behave (bounce-and-complaint thresholds, throttling, and per-mailbox reputation), see the deliverability FAQ.
When something goes wrong
- `404` "mailbox not found": you passed an email address instead of the
mbx_…public id, or the key is bound to a different mailbox. - `401`/`403`: the key is missing, expired, or scoped too low - a
readkey cannot send, and it cannot lift a suppression (that needs the suppression scopes on aread_writeor management key). - Custom domain will not verify: confirm the
MXand DKIM records were published exactly as the dashboard shows, and that they have propagated at your DNS host before retrying verification. - Send rejected: add the required
Idempotency-Keyheader (a fresh UUID per logical send).
Next steps
Related
Give your agent a real mailbox
Two-way email over REST and a native MCP server, EU-resident by default.
EU data residencyPer-customer encryptionNative MCP