Follow the message.

A connected mail stack inside one Go executable. Protocol servers, message processing and local storage share the same runtime.

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

SMTP receives mail for your configured domains. The message-processing path applies enabled authentication and spam checks, including SPF, DKIM, DMARC, ARC, RBL, greylisting and Bayesian filtering. Sieve rules can apply server-side filtering.

Local messages are written to Maildir++ storage. IMAP and the webmail/API interfaces provide access to that mailbox. Optional POP3 support exists and is disabled by default.

Outgoing delivery

Clients submit mail using authenticated SMTP submission, ordinarily STARTTLS on port 587 or implicit TLS on 465. Outgoing messages enter a delivery queue with retry logic and exponential backoff.

Queue status and delivery actions are available through the admin REST API. Direct-database CLI commands require the server to be stopped; they cannot share the running server’s bbolt lock.

Local data, deliberately simple

Maildir++ holds messages; bbolt databases hold account and mail metadata. A local search index supports full-text search. Deploy with persistent disks and use a tested backup process.

A single-node architecture

Do not run several instances against the same data directory or assume shared-data replicas are supported. The current storage model is local to one server.

Three interfaces. One server.

  • Webmail: folders, message reading, flags, compose, drafts, trash and search.
  • Admin: domain, account and alias workflows, with delivery queue controls.
  • Account portal: individual account access and available preferences.

The React interfaces are embedded through Go’s filesystem embedding. Realtime interface events use Server-Sent Events (SSE), despite older material referring to WebSocket updates. Contacts and some settings/profile interfaces remain incomplete in the current beta.

Your tools can join in

A REST API handles integration workflows. Webhooks send event notifications; Prometheus metrics and optional OpenTelemetry support observability. The MCP server provides domain and account tools for compatible assistants.

MCP queue operations are currently placeholders. Use the implemented admin REST API for live queue inspection and retry workflows.

Read the upstream architecture, HTTP server implementation and MCP implementation for the full source context.

Content checked against product source cc09145 on 18 October 2026. Commands are source-verified; this site does not certify a mail deployment.