Haraka is a Node.js SMTP server that handles thousands of concurrent connections with a modular plugin architecture optimized for throughput and low latency.
Haraka solves the problem of building scalable mail infrastructure by providing an event-driven SMTP server where every transaction flows through well-defined hooks—connect, helo, mail, rcpt, data, data_post, queue, and others—that can be extended with asynchronous JavaScript plugins. This approach means behaviors requiring custom MTA code elsewhere become small plugin files in Haraka. The server includes a built-in outbound delivery engine that automatically queues mail flagged for relaying, and it offers strong spam protection through its plugin ecosystem.
Haraka suits organizations needing a filtering MTA or message submission agent (MSA) that can scale horizontally. It works alongside mail stores, LDAs, and IMAP servers rather than replacing them. The tool is particularly valuable for teams comfortable with JavaScript who need to customize mail handling logic—such as rewriting addresses, integrating with external APIs, or implementing domain-specific routing—without forking the core codebase. A comprehensive plugin registry covers auth, DNSBLs, DKIM, SpamAssassin, rspamd, Redis, ClamAV, and various queue backends, reducing the need to write plugins from scratch.
The project maintains active engagement with its community through GitHub issues and a mailing list implemented as a Haraka plugin itself. Documentation is comprehensive, including a plugin registry, core API documentation, a step-by-step tutorial, and a screencast for getting started. The codebase accepts contributions and maintains a security policy with a documented reporting process.