The workshop · Edition No. 6 · 31 Aug 2026

axllent/mailpit

A fake mail server with a web inbox, for reading messages before real people get them.

← The workshopRead the whole edition →
Mailpit: catches mail instead of sending it. Every message a program sends lands in a web inbox.

10.3k stars · MIT · v1.31.1 (2026-09-05) · Track this in Rising ↗

Fake SMTP server with a web inbox, spam score and HTML-compatibility report — read the campaign before subscribers do.

Verified25 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive100

Last code pushed 22 Oct 2026, 5 days before this check.

Releases100

Latest release v1.32.0 on 22 Oct 2026.

Maturity70

Public since July 2022, a little over 4 years.

Adoption81

10,749 stars and 367 forks.

Activity85

122 commits and 15 new issues in the last 90 days.

Community80

53 contributors. 8 pull requests merged in 90 days.

Security80

A security policy says how to report a problem. 17 published security advisories.

Licence MIT: permissive: use it for anything, keep the noticeSetup effort 1 of 5Payoff 3 of 5
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 25 Oct 2026 from the repository on GitHub. Covered in Edition 6.

▶Repo detailsthe review · specs · pros & cons · install

What it does

It runs one program that listens for outgoing mail. Any application pointed at it sends mail there instead of to the internet. Each message appears in a browser inbox, where the formatted version, the plain-text version and the raw message are all readable. It scores each message against junk-mail rules, and checks the formatting against a table of what real mail programs support. It also has an interface other programs can call, which makes it usable in automated tests. The licence is MIT and the latest release is v1.31.5, from 11 October 2026. What it does not do is deliver anything. It says nothing about whether real mail would arrive, so the records that prove a sender is genuine are still a separate job.

Why it matters

Who it suits. Anyone about to send a first newsletter to a real list. It also suits any team whose sign-up confirmations and password resets have never been read by a human, which is most teams, because that is the mail path that breaks quietly and costs sign-ups with no error anywhere. Skip it if nothing in the project sends mail at all.

Verdict. Worth half an hour, today, and it is the lowest-effort entry on this page. One container, no configuration, and the two things that cannot be eyeballed, the junk score and the formatting report, are built in. Two cautions. The formatting report is a fixed rule list, not a real copy of any mail program, so treat it as a strong hint. And left on a public machine with no password it would show every message it has caught, so keep it on a local machine or behind a login. rnwood/smtp4dev is the closest alternative.

Stars10.3k
LicenceMIT
Latestv1.31.1 (2026-09-05)checked 7 Sep 2026
Written inGo
NeedsDocker
RunsLocally, on your own machine
Summary (Key Points)from the README
Key features
  • Single binary or Docker: Runs from one static binary or multi-architecture Docker images.
  • Web UI with search: Shows formatted HTML, highlighted source, text, headers, raw source and MIME attachments, including image thumbnails. HTTPS and authentication are optional.
  • SMTP server: Supports optional STARTTLS or SSL/TLS and authentication, including an "accept any" mode.
  • Ingest speed: Ingests 200-300 emails per second over SMTP, depending on CPU, network speed and email size.
  • Automatic pruning: Prunes by volume or message age, keeping the most recent 500 emails by default.
  • HTML and link checks: The HTML check scores mail client compatibility. The link check tests message links and linked images.
  • Spam check: Tests message "spamminess" using a running SpamAssassin server.
  • Relay and forwarding: Relays messages through another SMTP server with an optional recipient allowlist, or forwards them automatically to predefined addresses.
  • Chaos and webhooks: Chaos mode injects configurable SMTP errors to test resilience. An optional webhook fires on received messages.
Ways to install
Platform or methodWhat it needsEffort
Mac via Homebrew (`brew install mailpit`)HomebrewLow
Arch Linux (AUR package)An AUR helper or manual AUR buildLow
FreeBSD (`pkg install mailpit`)FreeBSD pkgLow
Install script (Linux and Mac)Shell access, writes to /usr/local/bin by defaultLow
Static binary (Windows, Linux, Mac)Download from releases and add to PATHLow
Docker (386, amd64, arm64 images)DockerLow
Compile from sourceBuild steps in the "Building from source" docsHigh
Important
  • Testing tool, not a mail server: Mailpit is built to capture mail during development and testing.
  • MailHog is unmaintained: Mailpit was inspired by MailHog, which the README says has had no active development or security updates for a few years.
  • Default SMTP port: The SMTP server listens on port 1025, so sending applications must be pointed at that port.
  • Pruning can delete mail: Old messages are removed automatically once the limit is reached, so keep the defaults in mind if you need long-term history.
  • Spam check dependency: It needs a separately running SpamAssassin server.
  • Relay and forwarding depend on another server: Both need a reachable external SMTP server.
  • Incomplete default address: The README leaves the web UI's default listen address blank, so check the docs or `mailpit -h` for it.
  • Vendor promotion: The README points to Mailtrap, a hosted product, for team features and multiple inboxes.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Setup effort
1 / 5
Payoff
3 / 5
Good
  • One program or one container, no configuration, MIT licence.
  • The junk score and the formatting report cover the two things nobody can check by eye.
  • It catches an application's own sign-up and reset mail, which is the path that fails silently.
Watch for
  • It never delivers anything, so it says nothing about whether real mail would arrive.
  • The formatting report is a fixed rule list, not a real mail program.
  • Left on a public machine without a password it exposes every caught message.
Install
docker run -d --name mailpit -p 8025:8025 -p 1025:1025 axllent/mailpit
Screenshots
axllent/mailpit: GitHub preview cardaxllent/mailpit: Screenshot 1

On Stack Radar: Build & Ship › Developer Environments › Local Development.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.