The easiest (and cheapest) way I’ve found to receive email sent to domains that I own is to set up a receipt rule set in AWS Simple Email Service and having all emails written to an S3 bucket. Here is a good guide for this setup.

As I use Gmail I don’t often need to view emails sent to my own domains, but sometimes it’s required. For example when you need to validate your domain ownership through AWS ACM.

So here is an easy way to list and read through all emails in an S3 bucket using the Mutt CLI email client.

Start by installing Mutt:

sudo apt install mutt

Setting up a mailbox

Mutt requires a certain directory structure when you’re creating a new mailbox. Namely that the cur, tmp, and new directories exist within it. Messages start off in the new directory before they are read by an email client and placed in cur. tmp is where emails are stored that are still being processed (this one isn’t important to us but Mutt still requires that it exist).

mkdir -p my-mailbox/{new,cur,tmp}

Downloading and reading emails

Using the AWS CLI we’ll download all of the emails from the S3 bucket into the mailbox’s new directory.

aws s3 sync s3://my-email-bucket my-mailbox/new

Launch Mutt and pass the -f flag to specify the location of our new mailbox

mutt -f my-mailbox

Mutt mailbox

Now in Mutt you can scroll through all of the messages with even (very) basic rendering of HTML emails!