Command Palette

Search for a command to run...

position in category
#16

Fake SMTP server that captures outgoing emails during development so you can inspect them without delivering to real addresses. Your application sends mail to MailHog instead of a live server, and messages appear in a web UI or via a JSON API for inspection, debugging, or release to a real server later.

Inspired by MailCatcher, built in Go as a single binary that runs without installation on multiple platforms. Widely used in local development setups, CI pipelines, and Docker Compose stacks. Differentiates with zero-config defaults, an ESMTP server that implements RFC5321 with SMTP AUTH and PIPELINING, and optional persistence via MongoDB or file storage when in-memory is not enough.

Key capabilities:

  • Web interface for viewing plain text, HTML, or raw message source with real-time updates
  • JSON API to list, retrieve, and delete messages for automation and CI
  • Release captured messages to real SMTP servers for selective delivery
  • mhsendmail replacement for PHP and other sendmail-dependent applications
  • Optional Chaos Monkey mode for simulating SMTP failures during testing
  • In-memory or persistent storage, HTTP basic auth for UI and API

Teams use MailHog to test transactional emails, password resets, and notification flows without risking deliveries to production addresses. Fits into Docker Compose alongside app containers, integrates with Laravel, Django, and other frameworks via SMTP configuration, and supports automation via its API for test assertions on email content.

GitHub Repositories
23
No noticeable change in usage since last week