Haraka is an open-source smtp server for high traffic sites

Haraka Transactional Email Service

Self Hosted Open Source SMTP Server built with Node.js

Haraka is a highly scalable Node.js open-source SMTP server. It can serve thousands of concurrent connections and deliver thousands of messages per second.


Haraka is a 100% free and open-source SMTP server. It is a highly scalable node.js email server with a modular plugin architecture. It can serve thousands of concurrent connections and can deliver thousands of messages per second. It is written in Node.js and can be extended. All the source code is available on Github.

Haraka is a great tool that has a modular plugin-based architecture that provides a complete, stable, secure, and extendable free SMTP server. Haraka can also be used as Incoming Mail Server, and Outgoing Mail Server (Mail Transfer Agent).

The main strength of this open-source SMTP server is its high performance and flexible plugin system. That allows the Javascript developers to change the behavior of the server. Being a highly scalable free SMTP server It is mostly used for high traffic sites or applications.

Haraka has very good SPAM protection and helps you reduce spam in your user’s inbox. Its plugin system makes it very easy to develop new features.

If you want to set up your own highly scalable open-source SMTP server, and looking for a solution that you can customize. Then Haraka supports all the required features. It is one of the most promising open-source SMTP servers available for high traffic sites.

System Requirements

It can easily run on any major operating system that can support Node.js

  • MacOS
  • Linux
  • Windows


Following are the key features of Haraka Open-Source SMTP Server

  • High Performance
  • Extensibility
  • Plugins
  • Highly Concurrent
  • Native Support for PROXY protocol
  • Highly configurable


Haraka requires Node.js to run you can install Haraka with npm:

npm install -g haraka

After installation, use the haraka binary to set up the service. First, create the service:

haraka -i /path/to/haraka_test

That creates the directory haraka_test with config and plugin directories within. It also sets the host name used by Haraka to the output of hostname.

If hostname is not correct, edit config/host_list. For example, to receive mail addressed to user@domain.com, add domain.com to the config/host_list file.

Finally, start Haraka using root permissions:

haraka -c /path/to/haraka_test

And it’ll run.


You may find the following links relevant: