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.
Growth work lives or dies on targeting and measurement. What matters is whether behavioral triggers can be built without engineering time, whether the event stream supports attribution past the open, and whether deliverability holds when broadcast volume shares a reputation with product email.
Against behavior-triggered journeys, broadcasts, and winback campaigns measured on revenue, MailHog covers none of the capabilities this audience leans on (scheduling, event stream, the suppressions API, and multi-tenant support), so it fits only where those needs are genuinely absent.
- Scheduling: No
- Event stream: No
- Deliverability: Not applicable; capture-only.
- Operating since: Not published
- Suppressions API: No
- Best published rate per 1,000: Tiers not published in comparable form
- Multi-tenant: No
- Free tier: Free, MIT-licensed
- Starts at: Free
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 |