$/transactional-email-api providers ↗
← all providers
Testing

MailHog

Classic local SMTP catcher (unmaintained since 2020).

overview

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.

for teams choosing a transactional API

Judged purely as an API. What the request contract guarantees on retry, how complete the webhook event coverage is, whether suppressions are readable and writable programmatically, and how much the message log retains when something needs debugging in production.

Against high-frequency programmatic sends where a missed delivery is a product failure, MailHog covers none of the capabilities this audience leans on (idempotency keys, webhook coverage, event stream, the suppressions API, batch sending, and SDK breadth), so it fits only where those needs are genuinely absent.

  • Idempotency keys: No
  • Webhooks: No
  • Event stream: No
  • Operating since: Not published
  • Suppressions API: No
  • Best published rate per 1,000: Tiers not published in comparable form
  • Batch sending: No
  • SDKs: None
  • Deliverability: Not applicable; capture-only.
deliverability

Not applicable; capture-only.

best for

Legacy projects already wired to it.

not great for

New projects. Mailpit runs on the same ports with active maintenance.

pros
  • Familiar from years of tutorials and boilerplates
  • Single Go binary with a Docker image and a chaos-testing mode
cons
  • 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

Appears in rankings

Compared with