Haraka (software)

Haraka is an open source SMTP server. Its architecture is plugin-oriented and event-driven. The server and its plugins are written in JavaScript using the Node.js framework.

Haraka follows a plugin model, implementing a very lightweight SMTP core and providing developers hooks into the mail flow. Almost all of Haraka's functionality is built as plugins.

Through its use of the V8 JavaScript engine and asynchronous I/O, the author claims the server is capable of handling thousands of messages per second.

Bounce.io announced that they regularly handle 2 to 5 thousand simultaneous SMTP connections with Haraka.

Typical Usage
Haraka is frequently used as a filtering MTA in front of other MTAs that lack the performance and/or filtering capabilities of Haraka. Craigslist uses Haraka to handle inbound and then forward validated connections to Postfix. Bounce.io similarly uses Haraka to accept incoming messages and deliver them to their application engine. Mail Toaster 6 uses Haraka similarly to accept incoming mail and forward to a qmail based message store.

Features

 * SMTP Authentication via LDAP, vpopmaild, flat_file, or SMTP proxy.
 * Access control by domain, IP, sender, or recipient.
 * Bounce validation, optionally blocking forged or invalid bounces.
 * Virus filtering with ClamAV and AVG
 * ASN lookups and filtering
 * Forward Confirmed reverse DNS validation
 * GeoIP reporting and optional filtering
 * Detection of remote Operating System
 * Header validation: make sure required headers are present, singular headers are not duplicated, and values are credible.
 * URIBL lookups of senders IP, helo hostname, envelope sender, and message contents
 * DKIM validation and signing (native)
 * DNSBL support
 * Early talker detection
 * HELO hostname validation (8 tests)
 * Karma, a heuristics scoring engine that weighs the results of all plugins and smites or blesses each connection.
 * Messagesniffer (requires SNF installation)
 * Rate limiting, by host, sender, or recipient
 * Recipient validation in flat file, LDAP, Redis, or qmail-deliverabled.
 * SpamAssassin, via spamd.
 * SPF (native)
 * TLS / SSL
 * Overload detection and automatic deferral of new connections.