✉️

Eternals Mailer

Stable

A self-hosted mail catcher for local development and testing. Capture and inspect emails without sending them to real recipients.

React NestJS Go PostgreSQL Redis

Overview

Eternals Mailer is an email testing tool for developers. It captures emails sent by your application during development so you can inspect them in a clean web UI. Point your app’s SMTP config at Eternals Mailer, and every outgoing email lands in your local inbox — safely, instantly.

Built with Go for SMTP capture, a NestJS API, a React web UI, PostgreSQL for persistence, and Redis for caching, Mailer lets you view HTML/text bodies, headers, and attachments for every captured email. No emails leave your environment, making it perfect for development and QA testing.

How to Use This Image

Quick Start

Terminal window
docker run -d \
--name ec-mailer \
--restart always \
-p 8502:8502 \
-p 1025:1025 \
-e POSTGRES_URL=postgresql://postgres:password@host:5432/mailer \
-v mailer:/app/attachments \
eternalscloud/mailer:latest

Once the container is running:

  • Web UI: Open http://localhost:8502 in your browser
  • SMTP Server: Configure your application to send mail to localhost:1025

Docker Compose

Terminal window
services:
ec-mailer:
image: eternalscloud/mailer:latest
container_name: ec-mailer
restart: always
ports:
- "8502:8502"
- "1025:1025"
environment:
- POSTGRES_URL=postgresql://postgres:password@db:5432/mailer
volumes:
- mailer:/app/attachments
depends_on:
- db
db:
image: postgres:18.4
restart: always
environment:
POSTGRES_PASSWORD: password
POSTGRES_DB: mailer
volumes:
- postgres:/var/lib/postgresql/data
volumes:
mailer:
postgres:

Run with:

Terminal window
docker compose up -d

Environment Variables

VariableRequiredDescription
POSTGRES_URLYesPostgreSQL connection URL (e.g., postgresql://postgres:password@host:5432/mailer)

Exposed Ports

PortDescription
8502Web UI and REST API
1025SMTP server

Volumes

PathDescription
/app/attachmentsMail attachment storage

Mount a volume to /app/attachments to persist email attachments across container restarts.

Need more? See the full documentation for SMTP client examples and integration guides.

Features

  • Token-based authentication
  • Real-time email capture
  • Full message inspection
  • Modern web UI with dark mode

Use Cases

  • Test email templates
  • Debug email delivery
  • Verify SMTP integration
  • QA workflows
All Projects