I run a few side projects on various domains, and often want to be able to send and receive email on those domains. Over the years I’ve used a few different solutions for this: Gmail aliases, Mailgun just for automated sending, AWS SES just for automated sending and AWS Workmail for manual sending and receiving.

AWS Workmail has been fine, but ends up being a bit pricey for this kind of usage at \$4 USD / user / month. You have to have at least one “user” per domain, so with multiple domains this adds up quite quickly and gets prohibitive for random side projects and experiments.

Meanwhile, I’m gradually moving off Gmail to Fastmail (affiliate link) as I like Fastmail’s “email on your side” philisophy, as well as the free storage you get.

Fastmail also has a nice custom domains feature on the paid plans, which is easy to set up for a domain in Route 53 with their guided instructions.

It has the important “send as this email account” feature, but also a useful catch-all feature where you can just receive all emails sent to the domain and subdomains on the main email account.

This is handy as you can just use whatever email address you want on the domain without any extra config. It also catches emails sent to addresses that some systems (and humans) assume exist on your domain, such as admin@ and so on.

This combines well with the other email providers I use, so I have all email use-cases covered at low cost:

• Fastmail (affiliate link) for manual human sending and receiving.
• Mailcoach for bulk sending of newsletter subscription emails.
• AWS SES for automated transactional sending.

All of this has been pretty straightforward to set up in AWS.