Now in private beta

Email hosting that actually feels like yours

Real mailboxes on your own domain, a web inbox you would choose over Gmail, and provisioning through an API instead of an admin panel.

AR

Welcome back

3 unread in hello@yourdomain.com

Search your mail. Type / for commands, @ for identities.

InboxThreadsSentArchive

Meridian Law - Re: Retainer for Q3

Stripe - Invoice 4831 paid

Northwind Studio - Brand assets, final round

Intro

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.

Real mailboxesUnlimited domainsAPI provisioningMCP serverIdentities modelPer-domain DKIMRLS on every tableRaw MIME in R2Idempotent sendsIMAP importWebhook eventsPWA inboxReal mailboxesUnlimited domainsAPI provisioningMCP serverIdentities modelPer-domain DKIMRLS on every tableRaw MIME in R2Idempotent sendsIMAP importWebhook eventsPWA inbox
Core features

One platform to run every address you own

Real mailboxes, an identities model for send-as, threading that survives Gmail and Outlook, and an API that treats a new domain as a database row.

Receive

What do you want to do?

Everything here is also a single API call.

Add a domainCreate a mailboxVerify DNSAdd an identityImport over IMAPRotate a key
Stripe  Invoice 4831 paid2 min ago
Meridian Law  Re: Retainer for Q318 min ago
Northwind Studio  Brand assets, final round1h ago

Mail lands the moment your MX record resolves.

Why EMayler

One host for mailboxes, identities, and provisioning

The cheap tier has solid infrastructure and webmail nobody enjoys. Workspace has a good client and no scripting story. We refuse the trade.

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.

What you get

Point one MX record and get real infrastructure

Every guarantee below is a hard rule in the repository, with a test that fails the build when it is broken.

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.

Integrations

The stack behind your mail

Vendors sit behind four ports in packages/core, so swapping object storage or moving hosts is a config change instead of a rewrite.
Am
Cl
Cl
St
Rs
Po
St
Ca
core

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.

Changelog

New features, fixes, and improvements

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

Numbers

Every message and send adds up to one boring system

60k

Mailboxes the architecture is sized for, on two small instances.

Capacity

100%

Of message rows rebuildable from object storage alone.

Durability

2.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

Pricing

Clear pricing plans that scale with you

Free

$0/forever

Inbound works immediately. Sending requires approval.

Start free

1 mailbox

Unlimited aliases

30-day message retention

Web inbox + IMAP

API access

Community support

Starter

$6/per mailbox / mo

Small teams with a few domains.

Get Starter

3 mailboxes included

Unlimited domains

180-day retention

MCP server access

Webhook events

Priority email support

Pro

$10/per mailbox / mo

Production workloads with import needs.

Get Pro

10 mailboxes included

IMAP import, resumable

1-year retention

Idempotency keys on every send

Attachment separate-origin CDN

Slack support channel

FAQ

Answers to the questions that come up most

How mail is stored, why sending needs approval, what happens when a dependency is down, and where your message bodies actually live.

Got questions?

Support is answered by the people who wrote the code. No tier-one script.

Email us
How is this different from Purelymail, Migadu or MXroute?

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.

How is this different from Google Workspace?

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.

Can I send as soon as I sign up?

No. send_enabled is false on every new organisation. Inbound works immediately; sending requires approval. This protects shared IP reputation for everyone.

Do you support IMAP import?

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.

Testimonials

What teams say after they migrate

Agencies, law firms and platform teams who were tired of distributing SMTP credentials by hand.
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.
SLSara LinOps lead, Northwind Studio
Docs

Read the spec before you trust us with mail

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

Get started today

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 free
Per-domain DKIMSPF and DMARCRLS enforced
AR

Welcome back

3 unread in hello@yourdomain.com

Search your mail. Type / for commands, @ for identities.

InboxThreadsSentArchive

Meridian Law - Re: Retainer for Q3

Stripe - Invoice 4831 paid

Northwind Studio - Brand assets, final round