SMTP/IMAP project
GPL-3.0 License
Mail Room is a lightweight email handling system built with Node.js and Docker, designed to securely process incoming and outgoing emails. It includes strict authentication checks (SPF, DKIM, ARC), spam detection using Rspamd, and integrates with Dovecot for mailbox management. The project is modular, consisting of distinct services that manage different aspects of email processing.
To run the project you need a server with Docker and the following ports open:
curl https://raw.githubusercontent.com/Carlgo11/mailroom/master/install.sh | bash
.env
filedocker compose up -d
mkdir mailroom
cd mailroom
docker-compose.yml
file
curl https://raw.githubusercontent.com/Carlgo11/mailroom/master/docker-compose.yml -O docker-compose.yml
curl https://raw.githubusercontent.com/Carlgo11/mailroom/master/.env.example -O .env
.env
filemkdir certs/{clients,dkim,dovecot,inbox,outbox} -p
docker compose up -d
npm install -g mailroom-cli
Start the services using Docker Compose:
docker compose up -d
To add or remove a user, use the mailroom cli tool:
Usage: ./mailroom-cli [command] [options]
Commands:
create-user <email> <password> Create a new email user
delete-user <email> Delete an existing email user
list-users List all email users
get-user <email> Get details of a specific user
generate-cert <email> Generate a client certificate for the user
.
├── certs/ # SSL/TLS certificates for inbox, outbox, and dovecot
│ ├── dovecot/
│ ├── inbox/
│ └── outbox/
├── conf/ # Configuration files
│ ├── dovecot/
│ └── rspamd/
├── controller/ # Controller server source
├── inbox/ # Inbox (MX) server source
├── outbox/ # Outbox (Submission) server source
└── rspamd/ # Rspamd service Docker build instructions
The following features are currently not implemented:
This project is licensed under GPLv3 - see the LICENSE file for details.