Real mailboxes on your own domain, a web inbox you would choose over Gmail, and provisioning through an API instead of an admin panel.
Welcome back
3 unread in hello@yourdomain.com
Search your mail. Type / for commands, @ for identities.
Meridian Law - Re: Retainer for Q3
Stripe - Invoice 4831 paid
Northwind Studio - Brand assets, final round
EMayler is custom-domain email hosting built around two things nobody in the cheap tier gets right: an inbox people actually enjoy, and provisioning you can script.
Forwarders handle inbound and then leave you stranded. Replying as you@yourdomain.com means per-user SMTP credentials handed out by hand, a hundred times over.
We host real mailboxes and model send-as as an identities table. A new address is an INSERT. A new domain is a database row. Not a DNS project, not a deploy.

Receive
What do you want to do?
Everything here is also a single API call.
Mail lands the moment your MX record resolves.

Real mailboxes
Not a forwarder with a reply-to hack. Actual storage, actual IMAP, actual send.

Provisioning you can script
A REST API and an MCP server. Onboard a hundred mailboxes in a commit.

An inbox worth opening
The product is the inbox, not the API surface. We build it that way round.
Identities
Send as any address on your domain.
Send-as is a database row, not a hundred manual Gmail setups. Aliases are free and unlimited because they cost us nothing. Mailboxes are the billing unit.
One mailbox, every address you own.

Durability
Raw MIME in object storage is the source of truth.
Postgres is a derived index holding metadata, threads, flags and search. Every message row is reconstructible from its r2_raw_key alone, and the reindex job is tested, not aspirational.
Rebuildable by re-parsing storage.

Isolation
Row-level security on every tenant-scoped table.
Application-layer filtering is not sufficient. One missing WHERE org_id is a cross-tenant email leak, so a CI test fails the build if any tenant table is missing a policy.
Enforced in the database, not the handler.

Bring your domain
Point MX at our hosts. Adding a domain is an INSERT, never a config file.
Delegated DKIM
One CNAME. Keys rotate without you touching DNS again.
Approval gate
send_enabled is false on every new org. Inbound works immediately.
Webhooks and MCP
Every lifecycle event, one JSON line. Ten tools for agents.
Private beta open
Inbound via Stalwart on EC2, 2 MX hosts. R2 raw MIME storage, Postgres derived index. Web inbox with cross-client threading.
0.4.0 · 2026-07-28
Identities and send
Identities model for send-as. Per-domain DKIM via CNAME delegation. Idempotency keys on every send.
0.3.0 · 2026-07-01
Provisioning API
REST API for orgs, domains, mailboxes. Row-level security on every tenant table. Stripe billing, per-mailbox unit.
0.2.0 · 2026-06-01
Foundation
Monorepo: apps/web, apps/api, apps/mcp, apps/workers. packages/core vendor-free domain logic. Self-hosted Postgres primary + streaming replica.
0.1.0 · 2026-05-01

60k
Mailboxes the architecture is sized for, on two small instances.
Capacity
100%
Of message rows rebuildable from object storage alone.
Durability2.5B
Message rows indexed at 60k mailboxes
10
MCP tools, deliberately no more
14d
Bound on subject-match threading
40k
Message IMAP import, resumable after a kill
Free
Inbound works immediately. Sending requires approval.
Start free1 mailbox
Unlimited aliases
30-day message retention
Web inbox + IMAP
API access
Community support
Starter
Small teams with a few domains.
Get Starter3 mailboxes included
Unlimited domains
180-day retention
MCP server access
Webhook events
Priority email support
Pro
Production workloads with import needs.
Get Pro10 mailboxes included
IMAP import, resumable
1-year retention
Idempotency keys on every send
Attachment separate-origin CDN
Slack support channel
They have solid infrastructure and webmail nobody enjoys. We prioritise the inbox and the provisioning. The product is the inbox and the API, not just the mail server.
Workspace has a good client and per-seat pricing with no scripting story. We have a real inbox plus an API and MCP server, so onboarding a domain or a hundred mailboxes is a script, not a click-through.
No. send_enabled is false on every new organisation. Inbound works immediately; sending requires approval. This protects shared IP reputation for everyone.
Yes. A 40,000-message IMAP import must complete unattended and be resumable after a kill. That is a tested requirement, not a stretch goal.
We migrated 200 mailboxes from Google Workspace in an afternoon. The IMAP import ran unattended and resumed itself after a network blip. I have never seen that work before.

REST API reference
Generated from openapi.yaml, which is authoritative. Orgs, domains, mailboxes, identities, messages.
Reference

MCP server, ten tools
A thin wrapper over the API with no business logic. Token-budgeted so read_mailbox stays under 2,000 tokens.
Guide

Self-hosting the stack
Own MTA, self-hosted Postgres with a streaming replica, pgmq queues, WAL archived off-box. No Redis.
Ops
Point your MX record and inbound works in minutes. Sending switches on once we have approved the domain, which protects reputation for everyone on the shared pool.
Start freeWelcome back
3 unread in hello@yourdomain.com
Search your mail. Type / for commands, @ for identities.
Meridian Law - Re: Retainer for Q3
Stripe - Invoice 4831 paid
Northwind Studio - Brand assets, final round