Dovel
Simple Go-based SMTP server for receiving and sending mail

Dovel is a lightweight SMTP server written in Go that focuses on simplicity and extensibility. It receives and sends email according to a single JSON configuration file and delegates mailbox/storage actions to user-provided hooks. (pkg.go.dev)
Key Features
- Written in Go with a single config file (defaults to $XDG_CONFIG_DIR/dovel/config.json) for easy setup and portability.
- Receives mail and executes executable hooks named receive-<DOMAIN>, passing the message in mbox format to the hook for custom storage or processing.
- Sends mail using a configured vault/users JSON file and supports per-user DKIM signing for outbound messages.
- TLS support via certificate and private key fields in the config (used for encrypted SMTP on submission ports).
- Listens on standard SMTP ports (25, 587, 465, 2525 configurable) and exposes a simple optional web interface for browsing messages.
- Debug/logging controlled by the DEBUG environment variable for developer troubleshooting. (pkg.go.dev)
Use Cases
- Self-hosted personal or small-team mail handling where incoming messages are processed by custom scripts (hooks) and stored in custom formats.
- Developer workflows that need programmatic delivery of inbound email to local tools, APIs, or archiving scripts.
- Simple transactional mail sender for services that can provide per-user DKIM keys and manage DNS records for deliverability. (pkg.go.dev)
Limitations and Considerations
- No built-in IMAP/POP3 mailbox server functionality; message storage/management is delegated to hooks so external tooling is needed for mailbox access.
- No integrated spam filtering, antivirus, or advanced MTA features (bouncing policies, rate limiting, reputational services) — these must be provided externally.
- Deliverability requires correct DNS/SPF/DKIM/DMARC configuration and operational handling (outbound reputation, PTR records) which are not automated by the server. (pkg.go.dev)
Dovel provides a compact, script-extensible SMTP server implementation intended for users who prefer a minimal, Go-based mail gateway that hands message storage and processing to custom hooks. It is most appropriate where straightforward SMTP receive/send behavior and per-message scripting are sufficient.
Categories:
Tags:
Tech Stack:
Similar Services

docker-mailserver
Containerized mail server stack for SMTP and IMAP with anti-spam
Production-ready mail server stack in a Docker container with SMTP, IMAP/POP3, LDAP auth, anti-spam/AV, DKIM/DMARC, and optional OAuth2 support.

Postal
Open source mail delivery platform for inbound and outbound email
Postal is an open source mail delivery platform for sending and receiving email, with SMTP support, web-based management, and tools for running your own SendGrid-style se...


Mail-in-a-Box
Turnkey email server with webmail, DNS, TLS, and admin panel
Mail-in-a-Box is a one-click mail server appliance for Ubuntu, bundling SMTP/IMAP, webmail, DNS, TLS automation, backups, and an admin control panel.

mailcow: dockerized
Docker-based email server suite with a web admin interface
Mailcow is a dockerized mail server suite providing SMTP/IMAP, webmail, anti-spam/anti-virus, and domain/mailbox administration via a unified web UI.

Stalwart Mail Server
All-in-one mail and collaboration server for modern and legacy protocols
All-in-one open-source mail and collaboration server with SMTP, IMAP, JMAP, CalDAV, CardDAV, and WebDAV, plus integrated anti-spam and phishing protection.

Mailu
Docker-based mail server with webmail and admin interface
Mailu is a full-featured mail server distributed as Docker images, providing SMTP/IMAP/POP3, webmail, administration UI, and built-in security and anti-spam features.
Go
JSON
Bash