SMTP
Set up and run the Reloop outbound SMTP engine locally in Docker.
Outbound KumoMTA engine — accepts mail from mail and delivers via SMTP (Mailpit locally).
Overview
| Property | Value |
|---|---|
| Directory | apps/backend/smtp |
| Docker service | smtp (container reloop-smtp) |
| SMTP ports | 465, 587, 2025, 2465, 2587 |
| HTTP port | 8020 |
| Stack | KumoMTA · Lua |
Quick start
bun docker:up
View captured mail at http://localhost:8025 (Mailpit).
Configuration
Key variables in local/docker-compose.yml:
| Variable | Default |
|---|---|
BASE_URL | https://local.reloop.sh |
NATS_URL | reloop-nats:4222 |
Commands
| Command | Description |
|---|---|
bun docker:up | Start full Docker stack (includes SMTP) |
docker compose -f local/docker-compose.yml up -d smtp | Start SMTP only |
docker logs -f reloop-smtp | Stream logs |
docker compose -f local/docker-compose.yml stop smtp | Stop container |
Architecture
| Layer | Detail |
|---|---|
| Submission | Accepts outbound mail on ports 465 / 587 / 2025 / 2465 / 2587 |
| Policies | Lua scripts in apps/backend/smtp/policy/ handle routing and DKIM |
| Local delivery | Captured by Mailpit at http://localhost:8025 |
| Inbound | Port 25 MX is handled by inbound, not this service |
Next
Was this page helpful?
- Need help? Contact Support.
- Chat with Reloop developers on Discord.
- Check out our changelog.
- Questions? Contact Sales.
- LLM? Read llms.txt.