Simple, fast IMAP+SMTP mail server.
Maddy implements Mail Transfer agent (MTA), Mail Submission Agent (MSA), Mail Delivery Agent (MDA) and IMAP server functionality in one application.
Feel free to join the IRC channel: ##maddy on irc.freenode.net.
You need Go 1.11.4 or newer. A C compiler is required for SQLite3 storage support,
you can disable SQLite3 support by passing -tags 'nosqlite3' to go build.
Also you need to enable modules support to get the right version. Set
GO111MODULE environment variable to on.
export GO111MODULE=on
go get github.com/foxcpp/maddy/cmd/maddy@masterYou can also compile and install helper binaries from cmd/maddy-pam-helper and cmd/maddy-shadow-helper. See corresponding README files for details.
Start by copying contents of the maddy.conf to
/etc/maddy/maddy.conf (default configuration location).
With this configuration, maddy will create an SQLite3 database for messages in /var/lib/maddy and use it to store all messages. You need to ensure that this directory exists and maddy can write to it.
Configuration syntax, high-level structure, and all implemented options are documented in maddy.conf(5) man page.
You can view page source here (it is readable!) or generate man page using scdoc utility:
scdoc < maddy.conf.5.scd > maddy.conf.5
go-imap-sql is the main storage backend used by maddy. You might want to take a look at https://github.com/foxcpp/go-imap-sql and https://github.com/foxcpp/go-imap-sql/tree/master/cmd/imapsql-ctl for how to configure and use it.
export GO111MODULE=on
go get github.com/foxcpp/go-imap-sql/cmd/imapsql-ctl
You need imapsql-ctl tool to create user accounts. Here is the command to use:
imapsql-ctl --driver DRIVER --dsn DSN users create NAME
MIT