MailHog
Classic local SMTP catcher (unmaintained since 2020).
MailHog popularized the local SMTP-catcher pattern. It is written in Go, runs SMTP on 1025 and a web UI on 8025, and shipped with a "Jim" chaos-testing mode. The repository has seen no meaningful updates since 2020. Mailpit is a drop-in replacement on the same ports.
At an early stage the deciding factors are what the free tier actually covers, what the first paid invoice looks like, and how much of a founding engineer's week the setup costs. Feature depth that only matters at a million sends a month is noise until it is not.
Against a waitlist, a launch announcement, onboarding email, and the first transactional sends, MailHog covers developer experience, and does not cover scheduling, SDK breadth, and webhook coverage. Whether that gap matters depends on how central those are to the build.
- Free tier: Free, MIT-licensed
- Best published rate per 1,000: Tiers not published in comparable form
- Starts at: Free
- DX score: 5/10
- Deliverability: Not applicable; capture-only.
- Operating since: Not published
- Scheduling: No
- SDKs: None
- Webhooks: No
Not applicable; capture-only.
Legacy projects already wired to it.
New projects. Mailpit runs on the same ports with active maintenance.
- › Familiar from years of tutorials and boilerplates
- › Single Go binary with a Docker image and a chaos-testing mode
- › No meaningful releases since 2020
- › HTML and modern CSS rendering trails current email clients
- › Open issues and pull requests are effectively unattended
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 |