Maddy logo

Maddy

Composable all-in-one mail server replacing multiple daemons

Maddy consolidates SMTP, MX, IMAP, DKIM, SPF, DMARC, DANE, and MTA‑STS into a single daemon with uniform configuration, reducing maintenance overhead while delivering reliable email services.

Maddy banner

Overview

Overview

Maddy is a single‑process mail server written in Go that handles the full email delivery chain: sending via SMTP (MTA), receiving as an MX, and providing mailbox access through IMAP. It also integrates the security extensions required for modern mail—DKIM signing, SPF validation, DMARC reporting, DANE TLSA records, and MTA‑STS policies—so administrators no longer need separate daemons such as Postfix, Dovecot, OpenDKIM, or OpenDMARC.

Who should use it

The project targets system administrators and DevOps teams that run small‑to‑medium email infrastructures and prefer a low‑maintenance stack. Because configuration is unified in a single declarative file, deployment can be automated with containers or traditional system services. The IMAP storage layer is still marked as beta, making Maddy ideal for environments where reliable message delivery is the priority and full‑featured mailbox handling can be delegated to a mature server if needed.

Deployment

Maddy ships with a Dockerfile and can be run as a systemd service. Its Go binary runs on any platform supported by Go, and the repository provides tutorials and documentation to get a production‑ready instance up and running quickly.

Highlights

Single daemon handling SMTP, MX, and IMAP
Built‑in DKIM, SPF, DMARC, DANE, and MTA‑STS support
Unified declarative configuration
Written in Go for performance and portability

Pros

  • Reduces complexity by replacing multiple services
  • Consistent configuration across all mail functions
  • Includes essential security protocols out of the box
  • High performance Go implementation

Considerations

  • IMAP storage is still in beta
  • Less feature‑rich than dedicated IMAP servers
  • Smaller community compared to legacy solutions
  • May require custom tweaks for advanced mailbox features

Managed products teams compare with

When teams consider Maddy, these hosted platforms usually appear on the same shortlist.

Gmail logo

Gmail

Email service with spam protection and Google integration

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Small to medium businesses seeking a simplified mail stack
  • DevOps teams that prefer a single, containerizable service
  • Environments where low maintenance overhead is critical
  • Organizations that need built‑in email security protocols

Not ideal when

  • Enterprises requiring production‑grade IMAP capabilities
  • Large deployments needing extensive mailbox plugins
  • Users reliant on a mature ecosystem of third‑party tools
  • Scenarios where separate specialized components are preferred

How teams use it

Unified mail server for a startup

Simplified setup and reduced operational cost

Secure email relay with enforced DKIM/SPF/DMARC

Improved deliverability and compliance

Containerized mail service for CI pipelines

Consistent environment across development stages

Educational lab for email protocols

Hands‑on learning with a single, configurable daemon

Tech snapshot

Go99%
C1%
Shell1%
Smarty1%
Dockerfile1%

Tags

smtpdkimspfimapmaildmarcemail

Frequently asked questions

Is Maddy production‑ready?

Core SMTP and MX functions are stable; IMAP storage is still beta.

What platforms does Maddy run on?

Any OS supported by Go, commonly Linux and BSD.

How is configuration managed?

Through a single declarative file using Maddy’s own syntax.

Can I migrate existing mailboxes?

Maddy’s IMAP backend is new; migration from Dovecot requires export/import.

Is there Docker support?

An official Dockerfile is provided, allowing Maddy to run as a container.

Project at a glance

Active
Stars
5,802
Watchers
5,802
Forks
307
LicenseGPL-3.0
Repo age9 years old
Last commitlast week
Primary languageGo

Last synced 2 days ago