Personal Mail server
Go to file
2019-01-06 03:16:28 -05:00
mail4one add pepper 2018-12-27 22:43:28 -05:00
.gitignore migrate pop3 2018-12-18 18:36:13 -05:00
LICENSE Add LICENSE 2018-12-18 17:12:08 +00:00
Pipfile initial version 2018-12-18 16:04:18 -05:00
Pipfile.lock initial version 2018-12-18 16:04:18 -05:00
README.md Update README.md 2018-12-19 08:18:52 +00:00
run.py migrate pop3 2018-12-18 18:36:13 -05:00
TODO.md update TODO 2019-01-06 03:16:28 -05:00

mail4one

mail server for single user #asyncio #python

Features

  • smtp server with STARTTLS
  • pop3 server with TLS
  • Both running on single thread using asyncio
  • Saves mails in simple Maildir format (i.e one file per email message)
  • After opening port, drops root privileges. So the process will not running as nobody

How to use

echo -n "balki is awesome+<YOUR PASSWORD>" | sha256sum 
pipenv install
sudo $(pipenv --venv)/bin/python ./run.py --certfile /etc/letsencrypt/live/your.domain.com/fullchain.pem --keyfile /etc/letsencrypt/live/your.domain.com/privkey.pem /var/mails --password_hash <PASSWORD_HASH_FROM_ABOVE>

Nextups

  • Support sending emails - Also support for popular services like mailgun/sendgrid
  • Smart assistant like functionality. For e.g.
    • You don't need all emails of package deliver status. Just the latest one would be enough.
    • Some type of emails can auto expire. Old newsletters are not very helpful
    • Aggregate emails for weekend reading.
  • Small webserver
  • SPAM filtering - not that important as you can use unique addresses for each service. e.g. facebook@mydomian.com, bankac@mydomain.com, reddit@mydomain.com etc. You can easily figure out who sold your address to spammers and block it.

Goals

  • Intended to be used for one person. So won't have features that don't make sense in this context. e.g. LDAP AUTH, Mail quota, etc,
  • Supports only python3.7. No plans to support older versions

Known to work

  • Server: Google Cloud f1-micro with Ubuntu 18.04 - Always Free instance
  • Clients: thunderbird, evolution, k9mail
  • smtp: Received email from all. Didnt see any drops. Tested from gmail, protonmail, reddit and few others

Contribution

Pull requests and issues welcome