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 smyile/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

Web UI

RustMail terminal UI showing the inbox with email preview

Terminal UI

Get started in seconds

Docker docker run -p 1025:1025 -p 8025:8025 smyile/rustmail:latest
Homebrew brew install rustmailapp/rustmail/rustmail
AUR yay -S rustmail-bin

Ready to catch some emails?

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