MailDev
Node-based local SMTP catcher.
MailDev is a Node-based local SMTP catcher with a web UI. Install it with npm or Docker, point SMTP at port 1025, and read captured mail on port 1080. It can fire a webhook when mail arrives and optionally relay caught messages to a real SMTP host, which is useful in CI.
A SaaS product sends on behalf of its customers, so the deciding factors are tenant isolation, whether suppressions can be scoped rather than global, and whether support can answer why one specific account did not receive one specific email. Lifecycle automation and transactional sending usually need to coexist.
Against trial expiry notices, dunning, onboarding sequences, and per-tenant transactional mail, MailDev covers webhook coverage, and does not cover multi-tenant support, event stream, the suppressions API, and scheduling. Whether that gap matters depends on how central those are to the build.
- Multi-tenant: No
- Event stream: No
- Suppressions API: No
- Operating since: Not published
- Scheduling: No
- Best published rate per 1,000: Tiers not published in comparable form
- Deliverability: Not applicable.
- Webhooks: Yes
- Starts at: Free
Not applicable.
Node-centric local development and CI.
New projects that could start on Mailpit for closer HTML rendering.
- › Installs with a single npm install or docker run
- › SMTP on 1025 with a web UI and REST API on 1080
- › Optional webhook on new mail for CI assertions
- › Relay mode can forward caught mail to a real SMTP host
- › Vue UI renders modern HTML email less faithfully than Mailpit
- › Release cadence is slower than Mailpit
Features at a glance
| API | Yes |
| SMTP | Yes |
| SDKs | None |
| Webhooks | Yes |
| Templates | none |
| React Email | No |
| Batch send | No |
| Scheduled send | No |
| Suppressions | No |
| Multi-tenant | No |
| Inbound parsing | No |
| Event stream | No |
| Idempotency keys | No |
| Dedicated IP | No |