v0.1.0 betaA fresh take on self-hosted mail

One binary.
Complete email.

Your mail.
Your infrastructure.

Stop stitching services together. SMTP, IMAP, webmail and spam protection — one cohesive mail server, written in Go.

❯umailserver serve
Open source · AGPL-3.0Pure GoSelf-hosted
ALL SYSTEMS. ONE BINARY.FIG. 001
Your complete mail stack, in one executableSMTP brings messages to the Go mail engine, with spam checks, a delivery queue and local Maildir storage. IMAP and the web interfaces connect you to your mail.uMailServerSMTP IN / OUTMAILDIR++IMAP / POP3WEB / REST / MCPPURE GO. ALL YOURS.
A smaller stack. A clearer picture.GO →
LESS TO OPERATE.
MORE TO BUILD ON.
Single executableComplete mail stackMail TLS built inAPI & MCPDocker compatible

01A SMALLER STACK. A BIGGER PICTURE.

Everything mail needs.
Room for what’s next.

Good infrastructure gets out of the way.
One engine brings the pieces together,
so you can focus on what you’re building.

ONE COHESIVE ENGINE

Less assembly.
More possibility.

Your protocols, delivery queue, local storage and web interfaces share a single Go runtime. Fewer moving parts to keep in sync.

SMTPIMAPWEBMAILREST API
uMailServerONE GO EXECUTABLE
Maildir++ + bbolt
Explore the architecture

The protocols you know.

SMTP, IMAP and optional POP3. Connect your existing clients, without changing how your team works.

25 / 587 / 465 · 143 / 993 · 995

A thoughtful first line.

SPF, DKIM, DMARC and ARC, alongside Bayesian filtering, greylisting and RBL checks.

LAYERED SPAM PROTECTION

Built to work with you.

A REST API, webhooks and an MCP server for domain and account workflows. Make mail part of your tooling.

REST · WEBHOOKS · MCP

02FOLLOW THE MESSAGE

A clear path.
From hello to inbox.

Receive, check, route, store. A connected pipeline
turns incoming messages into accessible mail.

Look under the hood
01

Receive

SMTP · port 25

02

Check

SPF · DKIM · DMARC

03

Route

Sieve · local delivery

04

Store

Maildir++ · bbolt

05

Connect

IMAP · webmail · API

Incoming mail follows the local delivery path shown above.Outbound mail uses the delivery queue with retries and backoff.

03A HUMAN SIDE TO INFRASTRUCTURE

Behind every email.
You’re in control.

Read your mail, manage your domains and connect your tools. Three embedded interfaces bring your server closer.

  • A place for your mail

    Folders, search, drafts and compose in the React webmail interface.

  • Your domains. Your accounts.

    Manage accounts and aliases, inspect queues and retry delivery through the admin API.

  • A view into the engine

    Prometheus metrics, structured logs and event webhooks for the tools you already use.

Get to know your server
YOUR SERVER, CONNECTEDCONCEPTUAL VIEW
mail.your-domain.com
A HOME FOR YOUR DOMAINS

Your mail.
Under your roof.

your-domain.comYour self-hosted mail domain
AccountsAliasesDelivery queue
Plays well with your workflow.

REST API · MCP · Webhooks

An illustration of the management model, not a product screenshot.

04MAKE IT YOURS

Your next mail server.
A few commands away.

Start with the source. Build the complete binary.
Keep every piece of your infrastructure in view.

YOUR SERVER. YOUR RULES.
terminal
01git clone https://github.com/uMailServer/uMailServer.git
02cd uMailServer
03make build
04sudo ./umailserver quickstart admin@example.com
05sudo ./umailserver serve --config /etc/umailserver/umailserver.yaml

Linux / macOS · Go 1.25+, Node.js 20+, npm and make. Review the generated configuration before starting.

Bring a domain, public IP and DNS access. Check port 25 with your provider.Walk through setup

05BUILT FOR YOUR CORNER OF THE INTERNET

01 /

A domain of your own.

For developers and self-hosters who want to understand and operate their own email infrastructure.

02 /

A home for your team.

Explore shared domain administration, individual accounts and aliases in a single-node deployment.

03 /

Mail that fits your tools.

Connect domain workflows to a REST API, receive event webhooks and inspect server metrics.

06BEFORE YOU DIVE IN

Good questions.
Straight answers.

Know what you’re running.
And what comes with it.

Keep the conversation going
Is uMailServer ready for my production server?+

The project is currently v0.1.0 beta. Evaluate it in a controlled environment, review the documented limitations and test backup and delivery workflows before relying on it for important mail.

Can I use my existing email client?+

Yes. The server implements SMTP submission and IMAP with TLS, plus optional POP3. Use the protocol and port settings from your server configuration.

Do I still need to configure DNS?+

Yes. A mail domain needs A and MX records, SPF, DKIM and DMARC. You also need a matching PTR record from your hosting provider and a provider that permits SMTP traffic on port 25.

Does the web interface include HTTPS?+

The current web and admin listeners speak HTTP. Put public web traffic behind a TLS-terminating reverse proxy. TLS for SMTP and IMAP is configured separately. The deployment guide explains the boundary.

Where is my email stored?+

Messages use local Maildir++ storage; bbolt stores metadata. This is a single-node system. Plan persistent storage and backups, and stop the server before using the direct-database CLI backup command.

What is the license?+

The current root LICENSE specifies AGPL-3.0-or-later. Some older documentation and promotional assets still say MIT; the repository LICENSE is the authoritative source.

YOUR MAIL HAS A NEW HOME.

Less stack.
More ownership.

Meet your infrastructure. Then make it yours.

Build your mail serverBuilt in Go. Open to everyone.