github foxcpp/maddy v0.1.0
maddy 0.1

latest releases: v0.7.1, v0.7.0, v0.6.3...
4 years ago

Stability: This version is believed to be stable enough for use in use non-critical deployments. Backward compatibility for database structures and configuration syntax is not promised but will be maintained if possible.

Implemented features

  • IMAP4rev1 (RFC 3501) server implementation with some basic extensions
  • SMTP (RFC 5321) server implementation with per-source, per-destination delivery and filtering support
  • Experimental local storage backend & IMAP index based on relational DB
  • Sender authentication methods for inbound messages: DKIM, DMARC, SPF
  • Remote server authentication methods for outbound messages: MTA-STS, DANE, DNSSEC-aware resolver, STARTTLS Everywhere rule-set support
  • PAM-based user authentication (not used by default)

In the end, it is not very flexible in some corners at the moment but if you just want a generic mail server set-up, it will not be a big trouble.

Known issues

  • IMAP sequence numbers are not properly synchronized, making concurrent mailbox access potentially unsafe, though the chance of actual data damage is pretty small. See issue #188 for details.
  • Support for IP literals in e-mail addresses is disabled. Attempt to use them will result in a delivery error.

Build artifacts

Artifact SHA-256
maddy executable (Linux, x86_64, musl) bfcb649ca9586f190d30933174d4b5770f1b75f541c13c94d5458cb7578f9073
maddyctl executable (Linux, x86_64, musl) 8e97306825cd0d1e0b2e5867327640a1dbfa6590e1451d2a9e7ebfc932fe53d2
Full Zstd tarball (Linux, x86_64, musl) 51cc45067a99d3cfb04d72bdfde5f99e2a699b04d495f85f68b1a2894e0b41d1

🔒 Attached tarballs are signed using PGP key 3197 BBD9 5137 E682 A597 17B4 34BB 2007 0813 96F4

Note: Provided binaries do not include support for PAM authentication as it depends on system libraries in ways that are problematic to make portable. For system account authentication, you can use shadow module that reads /etc/shadow directly or maddy-pam-helper (install it into /usr/local/lib/maddy).

Attached tarballs include complete root prefix for Linux so you can just extract contents into the root directory to install maddy if you do not want to build it from source for whatever reason.

Build environment information:

  • Distribution: Alpine Linux 3.11.3
  • GCC: 9.1.0
  • Go: 1.13.4
  • musl-libc: 1.1.24

Utilities and all binaries used to build the tarball can be found here: https://foxcpp.dev/maddy-repro/. In theory it should be possible to recreate the exactly same build output using them.

Don't miss a new maddy release

NewReleases is sending notifications on new releases.