Haraka
A high-performance Node.js mail server with a modular plugin architecture for scalable email filtering and delivery.
Smart Download
Visit Project Homepage
No installer available yet — head to the source repository
High-performance Node.js mail server with plugin architecture for flexible filtering and delivery.
Core Features
- Modular plugin architecture for easy extension
- High performance: thousands of concurrent connections & messages per second
- Built-in outbound delivery engine for relayed mail
- Rich official plugins: anti-spam, DKIM, DNSBL, etc.
- Lightweight: not a mail store, designed for filtering & forwarding
What It Can't Do
- •Haraka is not a full mail system; it requires a mail store (e.g., Dovecot, Exchange). Needs root to bind ports 25/587. Plugin configuration is flexible but requires reading docs.
Use Cases
- Front-end filtering gateway for corporate mail systems
- Complement Exchange or Postfix with flexible filtering
- Build custom mail processing pipelines (address rewriting, content scanning)
- Replace Qpsmtpd or use as high-performance MSA
Detailed Introduction
Haraka is a highly scalable Node.js email server that can handle thousands of concurrent connections and deliver thousands of messages per second. Its modular plugin architecture makes it easy to extend and customize, providing powerful spam protection and filtering capabilities. Unlike traditional MTAs that focus on mail storage, Haraka excels as a filtering MTA or MSA (Mail Submission Agent) when paired with storage systems like Exchange or Postfix. It includes a built-in outbound delivery engine for relayed mail. Plugins cover DNS blocklists, SpamAssassin, HELO validation, DKIM signing, and more. Ideal for developers and sysadmins needing flexible, high-performance email processing.
Troubleshooting & FAQ (2)
TroubleshootingHow to fix Haraka 'Cannot pipe while currently piping' error when using dkim plugin with signing disabled?
This error occurs in Haraka 3.1.4+ when the dkim plugin is enabled but signing is disabled. To resolve it, either enable DKIM signing by creating a dkim.ini file in your config directory with [sign], or apply the following patch to outbound/index.js that introduces a setImmediate delay before sending:
enabled = trueawait new Promise((resolve) => setImmediate(resolve)). This prevents a pipe conflict between the dkim verify stream and the outbound queue. The issue is fixed in later Haraka releases.
TroubleshootingHow to fix Haraka 'ENOENT: no such file or directory' error when renaming queue tmp files?
This transient error is caused by an issue in FsyncWriteStream that was fixed in Haraka 3.3.0. Upgrade to Haraka 3.3.0 or later to resolve the problem. If the error persists after upgrading, check for filesystem permissions or I/O bottlenecks on the queue directory, and consider reporting the issue to the Haraka project with detailed logs.
Tags
Getting Started
Download installer
Click the button above to download the installer for your system
Install the software
Double-click the downloaded installer and follow the prompts
Step 1: Install Node.js, then run npm install -g Haraka
Step 2: Create service directory: haraka -i /path/to/haraka_test
Step 3: Edit config/host_list to add your domain, edit config/plugins to enable plugins
- Step 1: Install Node.js, then run npm install -g Haraka
- Step 2: Create service directory: haraka -i /path/to/haraka_test
- Step 3: Edit config/host_list to add your domain, edit config/plugins to enable plugins
Checksum not available
This project has not published a SHA-256 checksum on its GitHub Release page
SHA256 Checksum
No checksum available
Download directly from GitHub Releases and verify file integrity yourself
All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.
Open Source Transparency
View GitHub SourceUninstall Info
Run npm uninstall -g Haraka to remove the global package, then delete the service directory.
No Extra Dependencies
Ready to use after download. No additional runtime required.
Having issues? Check the FAQ below
2 FAQs
Similar Projects
Visual Studio Code (Code - OSS)
A free, open-source code editor by Microsoft with rich extensions, debugging, and Git integration. The most popular developer tool worldwide.
scrcpy
Display and control your Android device from your computer via USB or TCP/IP. No root required, high performance, low latency, supports audio and video mirroring.
godot
Godot Engine is a free, open-source, cross-platform 2D and 3D game engine with a unified editor. Unlike Unity or Unreal, it's entirely MIT-licensed and community-driven, offering a lightweight yet powerful node-based workflow that runs on a single executable.