This post is part of a series called Decisions That I’ve Loved.

I’ve been using FastMail.com as my email provider for 5 years. Prior to that, I used Google Apps and prior to that, I used GMail (having been a beta tester in high school – 1GB of storage!).

One thing I’ve wanted to do for several years is have the ability to have unique email addresses for different services. You could accomplish in GMail by adding a +whatever to your email address before the @gmail.com. For example, if your address was jordan@example.com, you could give someone jordan+evilcorp@example.com and GMail would know messages sent to that address were meant for you.

You could then combo that with filters to create “disposable” email addresses. The issue with this is that they aren’t really disposable, as you can’t really delete them; They still arrive in your inbox. Though you can setup a filter to delete them immediately, you then have to keep that filter forever if you want to actually block the sender.

As of today, FastMail does support plus addressing, but I run into the same issue as with GMail: You have to keep a filter around forever to prevent mail sent to that address from hitting your inbox. What I wanted was a way to create a truly disposable address and (fortunately for me) FastMail has another feature I can use to create these addresses: Aliases.
FastMail actually supports a few different kinds of aliases (aliai?): Standard (e.g. myalias@eml.cc, myalias@mailbolt.com, etc) and custom (myalias@hxl.io). I’m going to use the latter, and the reason for that is two-fold:

  1. I don’t want to give out domain addresses over which I don’t have control. i.e. If I delete an address alias I’ve created, I want to be sure someone can’t come in behind me to claim an address I’ve purged and will now receive mail intended for me (whether I still want it or not).
  2. It makes it more trying to generate original addresses, as I’m now fighting other FastMail users who might be doing the same thing (there are probably dozens of us!). With my own domain, I can be sure that if I want EvilCorp@, I’m going to get it.

Now that I’ve settled on custom aliases via FastMail, I need two (2) things: 1) a way to reliably generate unique addresses, and 2) a way to track to whom they were given.

For the first issue (generating the aliases), I’ve settled on using the first octet of a randomly generated v4 UUID. This gets me 8 characters that are a) difficult to guess, b) easy to hand out (well, kinda), and c) of a standard length. Once generated, I add an alias to my FastMail account (e.g. 40200b48@hxl.io) and I’m ready to receive mail.

This leaves the final step: Tracking to whom they are given. Unfortunately, Google Sheets is the best spreadsheet tool I know of (feel free to email me at the aforementioned address if you know of a better alternative), so I’m going to keep track of the aliases and their respective owners there. This is as simple as two columns: Alias and Owner. For example, I have a row for 40200b48 and Alias Blog Post.

Going forward, if I were to notice emails sent to my EvilCorp@ alias were also being sent by ADifferentEvilCorp, I’d know Evil Corp sold (or, at the very least, leaked) the address, and I can now remove it from my FastMail account and be done.


There are a few caveats to this system that are worth noting:

Using this system in combination with FastMail’s other routing features could cause issues or may make it difficult to sort mail. For example, allowing wildcard addresses (*@example.com) in combination with the aliases will make it so that you can’t actually delete the alias and have the messages bounce thereafter.

UUIDs work for me because I can generate them easily and have no issue with keeping a spreadsheet record of each. If you want to use specific names (e.g. EvilCorp@example.com) instead of a random address, feel free.