The most flexible email processing platform

The server software that makes your email infrastructure scalable, rich in functionality and easy to manage.

Features
Consolidates email infrastructure

Cut system complexity

In contrast to traditional layered email infrastructure, Halon enables you to rapidly architect the system that you want without compromises. At the same time, Halon will reduce complexity, lower maintenance and increase performance. Halon customers typically cut over 70% of operations expenses, freeing resources for other revenue-generating projects. If you have email storage, Halon takes care of everything else, in an integrated and scriptable fashion.

Integrated blue-green deployment

Reduce deployment time and risks

Run parallel versions of your configuration with traffic splitting. Along with a consolidated and programmatic approach to in-transit email, you can make rapid implementations as well as reliable deployments of changes or new functionality. Revision-managed configuration makes all changes fully visible, and provides instant rollbacks.

Slideshow
Developer-friendly

Keep your system fully flexible

Keep up with your competition through rapid implementation of new technologies, with Halon's email-centric scripting language. It could be DKIM signing with keys delivered from a control panel using a REST API lookup, custom SRS, dynamic routing or tailored outbound policies for maximum deliverability. The web admin's IDE features a sandbox, live staging, REPL interpreter and revision management. Halon provides a powerful software framework that performs better than most in terms of speed and efficiency, while dramatically improving system flexibility.

Script reference Live demo
Built for email service providers

The most full-featured email processing platform

if (!$senderip) {
    SetProtocol("smtp"); // Use SMTP for locally generated DSNs
    Try();
}
// Use a more robust lookup like https://wiki.halon.io/API_calls
$route = cache ["ttl" => 3600] http("$apiurl/route", [], [$recipientdomain]);
$route = json_decode($route);
if (!is_array($route))
    Reschedule(3600, ["reason" => "Invalid route", "increment_retry" => false]);
SetDestination($route["storage"]);
SetProtocol("lmtp");
if (GetMetaData()["spam"] == "yes") {
    // Bulk IP
    SetSourceIP("netaddr:4");
} else {
    // Source hash
    $addrs = ["netaddr:1", "netaddr:2", "netaddr:3"];
    $sourcehash = number("0x".md5($senderdomain)[0:6]);
    SetSourceIP($addrs[$sourcehash % count($addrs)]);
}
$ptr = cache ["ttl" => 3600] dnsptr($sourceip, ["extended_result" => true]);
if (isset($ptr["result"][0]))
    SetHELO($ptr["result"][0]); 
// In the post-delivery script
if ($errorcode >= 400)
    rate("delivery-failures", $senderdomain, 1000, 3600);

// In the MAIL FROM script
if (rate("delivery-failures", $senderdomain, 0, 3600) > 999)
    Defer("$senderdomain has more than 1000 failed deliveries during the last hour");
// Per-domain DKIM signing using external database
function Deliver() {
    // Override the deliver function
    global $apiurl, $senderdomain;
    // Use a more robust lookup like https://wiki.halon.io/API_calls
    $dkim = cache ["ttl" => 86400, "size"=> 32768, "ttl_override" => ["" => 60]]
        http("$apiurl/dkim/$1", ["timeout" => 10], [$senderdomain]);
    $dkim = json_decode($dkim);
    if (is_array($dkim))
        DKIMSign($dkim["selector"], $dkim["domain"], $dkim["rsakey"]);
    builtin Deliver();
}