RustMail logo

RustMail

SMTP Mail Catcher

Catch and inspect outbound email from your dev and test environments. Nothing gets delivered — everything lands in a local web UI instead. Single binary, nothing to install.

terminal

$ docker run -p 1025:1025 -p 8025:8025 -e RUSTMAIL_BIND=0.0.0.0 ghcr.io/rustmailapp/rustmail:latest

SMTP listening on 0.0.0.0:1025

Web UI → http://localhost:8025

Everything you need, nothing you don't

A self-hosted mail catcher that doesn't cut corners.

Emails survive restarts

SQLite-backed by default. Ephemeral mode for throwaway CI runs.

Find anything

FTS5 full-text search across subject, body, sender, and recipients.

Real-time inbox

WebSocket push. Dark mode. Keyboard shortcuts. Instant delivery.

Built for CI

REST assertions, CLI assert mode, and a GitHub Action for your pipeline.

Single binary

Frontend embedded at compile time. One binary, zero runtime dependencies.

REST API + OpenAPI

Full API spec. Export emails, release to SMTP, webhook notifications.

See it in action

A UI that doesn't suck. Dark mode, keyboard shortcuts, real-time updates.

RustMail web interface showing the inbox with email details

Get started in seconds

Docker docker run -p 1025:1025 -p 8025:8025 -e RUSTMAIL_BIND=0.0.0.0 ghcr.io/rustmailapp/rustmail:latest
Homebrew brew install rustmailapp/rustmail/rustmail

Ready to catch some emails?

Open source, dual-licensed (MIT / Apache 2.0), free forever.