Managed service UI add-on

MSUI is an add-on component to Halon MTA. It enables end-users or domain administrators to carry out email-related tasks such as changing settings, trace messages in real time, or look at statistics. It's ideal for organisations that doesn't build their own customer portal.

Live demo Login with username and password "demo".
An email filtering interface builder

Your own email security service

The managed service user interface is typically used by system integrators (SIs) or managed service providers (MSPs) that offer an email security service as part of their portfolio. It can also be used by web hosting providers that don't want to include email filtering settings into their existing control panel.

The combination of Halon MTA, MSUI and the included threat intelligence from Cyren and Sophos (protecting against spam, phishing, malware, etc) is everything an SI or MSP needs to operate a geographically localised, best-in-class and cost-effective secure email service for their customers.

Built for hosting and managed service providers

Customisable, brandable and multi-tenant self-service portal

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"]);