We are still actively working on the spam issue.
Setting up a Server/Mail
Perhaps you're sick of Google/M$ datamining your emails, or maybe just want mail for your domain. Either way running your own mail server is a good solution.
Before You Start
You need a domain.
- This should not be a free domain that can be revoked at any time such as those from freedns or no-ip.
- See Domains
You need a server (duh) and a good understanding of GNU/Linux(or BSD, if you're so inclined) Keep in mind that the host can often see everything if you're using a VPS. Stick to trustworthy hosts or host from home for maximum (physical) security.
Consider that many residential ISPs block port 25 to fight spam. Contact your ISP and ask if they will let you use port 25 - if they refuse you will need a VPN or proxy for your mail server (see Setting Up A Server/VPN and Proxy).
SMTP traffic between mail servers is often unencrypted for at least part of the route for a number of reasons. Consider using PGP to avoid potential interception problems.
The Easy Way
There are a number of complete mailserver packages around specifically for the new or lazy sysadmin. Here are some recommendations, all include everything you need including anti spam. For most you will need Docker set up.
- iRedMail - full featured, should only be run on a fresh install
- docker-mailserver - docker, no webui
- Mailu - docker, full featured including webui, simple
- Mailcow - available for docker or for bare metal, but only docker is kept up to date. Includes webui.
The Hard Way
 Older guide to encrypted mailboxes. Recommended.
What about having your mail server accessible as a Tor hidden service? (link to that guide)