MailCatcher
Tiny Ruby-based local SMTP catcher.
MailCatcher is a Ruby gem that runs a local SMTP server on port 1025 and a web UI on 1080. It is common in Rails projects and shows the HTML, plain-text, and raw-source version of each captured message. Development is slow, so Mailpit is usually the stronger default today.
The question here is which one a backend engineer would rather operate. That means SDK depth in the language already in use, whether a retry can safely be replayed, how much the event log tells you when a customer says the email never arrived, and whether the pricing curve stays sane as volume grows.
Against password resets, receipts, and magic links shipped from application code, MailCatcher covers developer experience, and does not cover SDK breadth, idempotency keys, event stream, and webhook coverage. Whether that gap matters depends on how central those are to the build.
- DX score: 6/10
- SDKs: None
- Idempotency keys: No
- Operating since: Not published
- Event stream: No
- Best published rate per 1,000: Tiers not published in comparable form
- Webhooks: No
- Deliverability: Not applicable.
- Free tier: Free, MIT-licensed
Not applicable.
Rails teams already running it in development.
Non-Ruby projects, which get a lighter setup from Mailpit.
- › Installs as a Ruby gem, familiar in Rails stacks
- › SMTP on 1025 with a web UI and JSON API on 1080
- › Shows HTML, plain text, and raw source per message
- › Release cadence is slow with little active feature work
- › Needs a Ruby runtime where Mailpit ships a static binary
- › HTML rendering trails newer catchers
Features at a glance
| API | Yes |
| SMTP | Yes |
| SDKs | None |
| Webhooks | No |
| Templates | none |
| React Email | No |
| Batch send | No |
| Scheduled send | No |
| Suppressions | No |
| Multi-tenant | No |
| Inbound parsing | No |
| Event stream | No |
| Idempotency keys | No |
| Dedicated IP | No |