2023-06-11 20:14:50 -04:00
2018-12-18 18:36:13 -05:00
2018-12-18 17:12:08 +00:00
2023-06-11 13:19:39 -04:00
2023-05-12 16:49:51 -04:00
2023-05-15 22:41:21 -04:00
2020-08-06 19:52:05 -04:00
2018-12-18 18:36:13 -05:00
2023-05-12 16:51:03 -04: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>

Just pop server for debugging

pipenv run python -m mail4one.pop3 /path/to/mails 9995 your_password

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. Didn't see any drops. Tested from gmail, protonmail, reddit and few others

Contribution

Pull requests and issues welcome

Description
Personal Mail server
Readme 202 KiB
v1.1 Latest
2024-04-01 18:20:01 -04:00
Languages
Python 92%
Makefile 4.5%
Shell 3.5%