Why run your own distributed email server?

By Ev Bogue - August 15th 2015

I didn't write anything yesterday, because for some reason nothing popped into my mind to write to the public web. So I figured I should probably catch up today. Because I promised I would write three times per week.

And I thought to myself: what is the most boring thing I could write about? Because saying that to myself has a way of inspiring me to write something. And the idea popped into my head: what about distributed email servers? That's one of the most boring things on the planet that almost no one can figure out how to do themselves.

Because what is the point of writing about things everyone already either knows how to do, or thinks they are an expert at?

I've been running my own distributed email server on a virtual private server (VPS). Right now it's on Digital Ocean (rewards link), because I have credit there I had to use up. But it might as well be anywhere that lets you run VPSes.

Virtual private servers are tiny virtual computers that live out on the Internet somewhere. I think of Operator's Manual, the book I wrote in January, as an ode to the incredible benefits of running your own VPS. Without virtual private servers, we'd basically be inslaved to the guys at the top of the digital startup pyramid built on the backs of users around the globe.

On a VPS you can run any software you want on the Internet, without the bounds of reasonable practice, if you can figure out how to do it.

And a distributed email server is one of the most boring things you can run on a VPS.

I run a distributed email server using Postfix, Spamassassin, and Procmail. I use Mutt as my email client and Vim as my text editor. I log into my server using ssh and send emails from there.

Postfix is for sending and receiving emails.

Spamassassin is for sorting out the spam.

And Procmail is for sorting spam that doesn't get caught by Spamassassin and a list of 1-5 assholes who email me loco shit.

To install these on Arch Linux all you need to do is type

% sudo pacman -Syu postfix spamassassin procmail

And you'll have them in no time.

Why would you want to run your own distributed email server? All sorts of reasons.

Self-reliance is a good reason. You want to run your own email address, with your own username, on your own domain name. This has all sorts of benefits, such as privacy, security, you can delete emails so they won't be saved in Goolphas database forever and ever to be sold to the highest bidder when the lean times eventually arrive. Knowing you can do it is another good reason. Because if you can't figure it out, you must not be a very talented technologist.

What if you want to send emails to other people without having to go through a third party? That's a great reason. One of my most well known beefs is: I used to use Mailchimp to send emails until they started using a censored keyword list that included the words "Bitcoin" and "Fuck" and an unclear number of other words I wasn't allowed to send over their servers. So now I use my own VPS, and I can send permission-based emails from my own server without having to run them by the the preschool teacher.

Obviously privacy is a relative thing with email servers. If you're not encrypting you're not really private, because emails get sent over the Internet in the same way postcards do, with all of your message hanging out. Unless you use GPG key. Sometimes I use a GPG key, but I only found a handful of people were sending me encrypted emails so I figured I'd give it a rest until there was a very good reason to use one. You never know.

I think the best reason to learn is for your own self-gratification. Especially right now, in the age of phone thumbing where almost everyone thinks they are technologist but no one knows how to do anything a toddler can't accomplish probably faster and with less squinting.

So are you running you own email server? I'll give you mad props. Lemme know what your email stack is ev@evbogue.com. Want to do it? Also let me know. Can't figure it out? I'd love to hear about that too.

How to write a markdown email with Nodemailer →

← Take The Node.js Test