Personal Mail server
Go to file
2023-06-28 15:15:31 -04:00
deploy_configs Sample config and doc 2023-06-28 15:15:31 -04:00
mail4one support old python - 3.9 2023-06-26 17:31:00 -04:00
scripts Add version info from git tags 2023-06-23 21:30:31 -04:00
tests Improve logging 2023-06-16 23:42:30 -04:00
.gitignore Sample config and doc 2023-06-28 15:15:31 -04:00
LICENSE Add LICENSE 2018-12-18 17:12:08 +00:00
Makefile Sample config and doc 2023-06-28 15:15:31 -04:00
Pipfile add jata 2023-05-12 16:49:51 -04:00
Pipfile.lock update dependencies 2023-06-13 14:18:29 -04:00
README.md Sample config and doc 2023-06-28 15:15:31 -04:00
requirements.txt get compiling with python 3.10 and remove pipenv for build 2023-06-14 11:00:09 -04:00
run.py migrate pop3 2018-12-18 18:36:13 -05:00
runtests.sh add docker tests and fix sorting 2023-06-14 15:25:42 -04:00
TODO.md Merge branch 'master' into dev 2023-05-12 16:51:03 -04:00

mail4one

Personal mail server for a single user or a small family. Written in pure python with minimal dependencies. Designed for dynamic alias based workflow where a different alias is used for each purpose.

Getting started

  1. Get a domain name
  2. Get a vps (or a home server). Setup firewall rules for receive on port 25, 995, 465
  3. Setup MX record
  4. Build/Download latest release - mail4one.pyz
  5. Generate config.json from deploy_configs/config.sample
  6. Run ./mail4one.pyz -c config.json
  7. [Optional] Setup systemd service and tls certificates. See deploy_configs/ for examples

Sending email

mail4one only takes care of receiving and serving email. For sending email, use an external service like below

Most of them have generous free tier which is more than enough for personal use. Sending email is tricky. Even if everything is correctly setup (DMARC, DKIM, SPF), popular email vendors like google, microsoft may mark emails sent from your ip as spam

Community

Original source is at https://gitea.balki.me/mail4one For issues, pull requests, discussions, please use github mirror: https://github.com/mail4one/mail4one

Documentation

See files under deploy_configs for configuring and deploying to a standard systemd based linux system (e.g debian, ubuntu, fedora, archlinux etc). deploy_configs/config.sample has inline comments for more details. Feel free create github issue/discussions for help.

Building from source

Make sure to have make, git, python >= 3.9, and pip installed in your system and run below

make build

Roadmap (Planned features for future)

  • Write dedicated documentation
  • Test with more email clients (Thunderbird and k9mail is tested)
  • IMAP support
  • Web UI for editing config
  • Support email submission from client to forward to other senders or direct delivery
  • Optional SPAM filtering
  • Optional DKIM verification
  • Webmail client
  • Web UI to view graphs and smart reports