Sandesh

Local mail development

Sandesh

Mail, made inspectable.

Run a complete mail environment on your own machine. Point your app at localhost, send a message, and follow it from delivery to raw bytes.

Open source Apache-2.0 Runs locally

Ready for a test message

Loopback by default

Sandesh developer console with local mail endpoints, delivery status, and recent messages
One local stack SMTP / IMAP / POP3 / HTTP

From send to signal

Your app sends.
Sandesh shows what happened.

No external mailbox or provider account to prepare. Start the server, keep your app pointed at localhost, and inspect each delivery as it lands.

01 Start

Run one binary

Sandesh starts the mail protocols, HTTP API, event stream, and developer console together.

02 Connect

Use localhost

Point your test app at SMTP. The default listeners bind to loopback on your machine.

03 Inspect

Follow the bytes

Read headers, MIME parts, attachments, delivery outcomes, and the protocol conversation.

One local state

Four ways into the same mailbox.

Test the protocol your app actually uses, then inspect the same delivered message from the console or API.

All listener ports are configurable and shown in the console.

Message inspection

Every view leads back to the original.

Preview the message, inspect ordered headers, follow the MIME tree, or search the raw source. Attachments, links, and delivery details stay close to the message they explain.

  • Sandboxed HTML preview
  • MIME parts linked to their exact source bytes
  • Received hops and authentication headers parsed, never verified
Read the user manual
Message inspector showing headers, MIME, links, raw source, attachments, and delivery tabs
Preview · Headers · MIME · Links · Raw · Attachments · Delivery

Connection history

When a client gets stuck, see the conversation.

Per-connection transcripts cover SMTP, IMAP, and POP3. Credentials are redacted and message bodies are elided at capture.

Explore protocol support
Protocol traces screen with live and historical SMTP, IMAP, and POP3 connections
Live and historical protocol traces

Built for local development

Your test mail stays in your environment.

Sandesh is a development tool, not a hosted inbox. Its defaults keep the test loop close to your app and under your control.

NETWORK

Loopback by default

Listeners bind to your own machine unless you deliberately configure another address.

STORAGE

Local data files

SQLite state and message blobs live in the data directory you choose.

CONTENT

Inspectable, not executed

Email HTML is sandboxed. Extracted links are displayed but never fetched by Sandesh.

A working mail environment

Built for the whole test loop.

Capture is only the start. Keep debugging, replaying, and integrating against the same local state.

SMTP

Exercise real clients

SMTP, IMAP, and POP3 share mail state with the REST API and live event stream.

REPLAY

Make failures reproducible

Replay stored messages, inject SMTP faults, and import or export a corpus as mbox.

HOOKS

Test what happens next

Configure delivery webhooks, inspect the retry outbox, and apply message rules.

LOCAL

Keep development data close

Messages, blobs, and settings stay on your machine unless you deliberately move them.

Start locally

A mail server for your next test run.

Start Sandesh, then point your app at 127.0.0.1:1025. Choose a container or application example.

See all setup options
Dockerlocalhost
docker run -d \
  -p 1025:1025 -p 1080:1080 \
  -p 1143:1143 -p 1110:1110 \
  -v sandesh-data:/data \
  ghcr.io/heliconiaio/sandesh:latest

Keep going

Find the guide for your next step.

Install instructions, working integration examples, and protocol details maintained alongside the project.

Choose your setup

Run it where you work.

Browse releases

Sandesh is a local development tool, not a hosted mailbox. Releases and checksums are published on GitHub.