// the find
sj26/mailcatcher
Catches mail and serves it through a dream.
MailCatcher is a local SMTP trap for development: it accepts any outgoing mail from your app and shows it in a browser UI instead of sending it. It's been the go-to tool for this for 15 years, which means most Rails and PHP developers have already used it at some point.
The zero-config setup is genuinely good — gem install, run, point your mailer at port 1025, done. The REST API on /messages lets you write integration tests that assert on sent email without parsing raw SMTP. WebSocket push means mail appears in the browser the instant it's sent, which matters when you're iterating on email templates. The Docker image works cleanly for teams that don't want a Ruby environment locally.
Last pushed May 2024, and the UI hasn't meaningfully changed in years — the screenshot in the README is from GitHub circa 2016. No support for SMTP AUTH or STARTTLS, which means it can't be used as a drop-in for apps that have hardcoded those settings. The Gemfile-conflict warning in the README is a real papercut that never got fixed architecturally. If you need anything beyond 'did the email arrive and does the HTML look right', you'll hit its ceiling fast — no click tracking, no spam score, nothing Litmus does.