Business email security

Protect your customers against the latest email-borne threats by offering a service that simplifies management and improves customer experience. Halon provides all you need to operate geographically localised, best-in-class and cost-effective secure email services.

Launch Managed service UI demo

Login with username and password "demo".

Challenges and benefits
  • Comprehensive threat protection. Not having a consolidated email security service makes oversight difficult, and can expose customers to security risks. Halon provides the latest in phishing, ransomware, spam and virus protection in a package that fits your entire customer base.
  • Stronger data protection. Outsourcing email security outside certain jurisdictions can raise customer concerns regarding personal data protection. Halon enables you to offer geographically localised yet competitive and cost-effective email security services to your customers.
  • Improved customer satisfaction. Email is business critical for many customers, yet it often takes long time to resolve email-related support issues. This is frustrating for customer as well as the support team. Halon's centralised track and trace makes it quick and easy to find any transaction, both on the sending and receiving side.
Built for system integrators

Fully multi-tenant solution for secure email services

if ($message["transportid"] === "bounces")
    Try(["protocol" => "smtp"]); // Use SMTP for locally generated DSNs
// Use a more robust lookup like
$route = cache ["ttl" => 3600] http("$apiurl/route", [], [$message["recipientaddress"]["domain"]]);
$route = json_decode($route);
if (!is_array($route))
    Queue(["delay" => 3600, "reason" => "Invalid route", "increment_retry" => false]);
Try(["protocol" => "lmtp", "server" => $route["storage"]]);
$options = [];
if (GetMetaData()["spam"] == "yes") {
    $options["sourceip"] = ["4"]; // Bulk IP
} else {
    // Source hash
    $addrs = ["1", "2", "3"];
    $sourcehash = number("0x".md5($message["senderaddress"]["domain"])[0:6]);
    $options["sourceip"] = [$addrs[$sourcehash % length($addrs)]];
// In the post-delivery script
$senderdomain = $message["senderaddress"]["domain"];
$errorcode = $arguments["attempt"]["result"]["code"];
if ($errorcode >= 400)
    rate("delivery-failures", $senderdomain, 1000, 3600);

// In the MAIL FROM script
$senderdomain = $arguments["address"]["domain"];
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
// Use a more robust lookup like
$dkim = cache ["ttl" => 86400, "size"=> 32768, "ttl_override" => ["" => 60]]
    http("$apiurl/dkim/$1", ["timeout" => 10], [$transaction["senderaddress"]["domain"]]);
$dkim = json_decode($dkim);
if (is_array($dkim))
    $arguments["mail"]->signDKIM($dkim["selector"], $dkim["domain"], $dkim["rsakey"]);