I’m taking a break from my regularly scheduled programming (I’m in the middle of a Series on trying out monitoring/observability tools/frameworks) to discuss a tool that I recently came across that is super useful and was a delight to use: MailCatcher.
I found a nice and light mailcatcher docker container
jeanberu/mailcatcher, so you don't have to dirty your own local ruby gems!
I recently completely rewrote a component I’m using for email templating and sending in a web application I’m currently working on to use
HStringTemplate. While I was debugging the email templating and sending, I wanted to check what the emails would actually look like (and do a bunch of small stylistic changes, etc). There’s a log of ways you could do this, here are a few:
- Unpacking + inspecting the traffic that would be sent to the SMTP server from your app, using you mind to imagine
- Start a local install of a mail server like postfix locally (maybe dockerized with a project like mailufor ease)
- Send the email to a staging-use SMTP server (whether you control it or)
- Use an ephemeral email service like ethereal
All of these options are desirable/undesirable in different ways, and I wondered to myself: surely someone’s already made some sort of daemon you can run locally that just pretends to be an SMTP server and pretends to deliver mail. Well, after a quick consultation with my local search engine, I found MailCatcher. I actually don’t like Ruby very much, for reasons I won’t get into here, but I found MailCatcher refreshingly simple to use, no-frills, and most importantly it got the job done.
The site is pretty bare, it was last released in 2016, and at first look you might assume it’s only for MacOS:
Any way, I was really happy with the software, it perfectly scratched my itch and thought it was worth sharing – I’ll probably make more posts like this when I find nice small tools like this one to use. If I’m living in the stone ages and you know some tool that’s way better, please feel free to reach out and let me know!