Weekend project: Set up your own email server
A few good reasons to have your own email server:
1) You have far more control over the data, and thus more privacy. 2) You control the policies of the server, so there are no arbitrary restrictions on receiving or sending mail. 3) You decide what features go in, and how they're configured.
First, make sure that you have access to the specific TCP ports that you'll need. These ports are often blocked by your residential Internet Service Provider, so you usually can't use your basic home Internet connection. Even when available, these messages are more likely marked as spam by email recipients, so one option is to set up your own mail server for receiving mail, but use an external Simple Mail Transfer Protocol (SMTP) server for sending mail.
Another solution to the port problem is to find a server that does not have any ports blocked on its network connections – I used a Virtual Private Server (VPS). In addition to the server, you will need a domain name, and have its mail exchanger record (MX record) point to your server.
Next, consider whether you want to use a turnkey solution, or put your server together from scratch. Newer users might consider a simpler approach like Inboxen, Mailcow, or Citadel. Or, if you're going to cobble together the main components on your own, you need a mail transfer agent (MTA), mail delivery agent (MDA), and an Internet Message Access Protocol/Post Office Protocol server (IMAP/POP3).
I picked Postfix, a popular piece of free software, as the MTA to route and deliver the electronic mail through SMTP. Postfix is nice in that it supports two storage formats: mbox, a system where all messages are concatenated and stored as plain text in a single file, and Maildir, a system where each message is kept in a separate file with a unique name, and each folder is a directory. For the MDA and IMAP/POP server, I went with Dovecot. These two programs are mainstays in the field, and there are a lot of different channels of support.
You can also employ additional components to combat spam and viruses: I recommend SpamAssassin for spam, and ClamAV is basically the standard in malware protection. You can even choose a webmail program to view, send, and manage your email: there are ample choices, including Cypht, Mailpile, RainLoop, and more.
Once you have all of your components, try finding an online guide to walk you through the process (which sadly, we don't have space to outline here). For my distribution, Parabola, I followed the guide at HowtoForge.com. I had to do a little outside research here and there, but it was pretty straightforward. For Advanced Package Tool based systems there are many guides to follow, but there is one that looks like a good starting point at scaron.info.
At the end of your weekend, you'll hopefully have a secure, personalized email system that you control fully. As one of our sysadmins pointed out, most of us think of our email as an extension of ourselves, so it's worth the effort for the increased peace of mind!