Odin

From Halon, SMTP software for hosting providers
Jump to: navigation, search

Odin (formerly Parallels) develops hosting, automation and billing systems for service providers.

Many of our customers uses the Halon SMTP software as a premium anti-spam in front of Odin servers such as Plesk. There are numerous different integration opportunities, and our official plugins only scratch the surface of what's possible. Most advanced integration are co-developed by us and the hosting provider, on a project basis.

One-click end-user login

The end-user control panel supports on-the-fly (session-based) access levels (domain or email based), which our APS2 and Plesk modules can prepare via the session-transfer.php file.

Integration

Several method can be used to implement routing (typically domain-to-server mappings) in the Halon SMTP server, including scripted dns() queries. The Halon nodes can also be configured to make API calls via the scripting language to the databases in for example Odin's PBAS or PPA servers via a simple REST API, such as

<?php
$dbh 
= new PDO('mysql:host=ppa1.example.com;dbname=psa''servicelocator''secret');
$res $dbh->prepare(...); // the query
if (!$res->execute([':domain' => $_GET['domain']]))
        die(); 
// db is down
$row $res->fetch(PDO::FETCH_ASSOC);
if (!
$row)
        die(
json_encode(array('action' => 'reject')));
die(
json_encode(array('host' => $row['ip']))); 

We've done numerous such integrations, and can help you tailor the systems to fit perfectly.

PPA

The Plesk Automation database can be used to perform domain-to-Plesk server mapping via a query such as

SELECT ip.public_ip_address AS ip FROM DomainServices AS ds
   INNER JOIN IpAddressesCollections AS i ON ds.ipCollectionId = i.ipCollectionId
   INNER JOIN IP_Addresses AS ip ON i.ipAddressId = ip.id
   INNER JOIN domains AS d ON d.id = ds.dom_id
   WHERE ds.type = "mail" and ds.status = 0 and d.name = :domain

where domains can be replaced with domain_aliases if there was no match with the first query.

PBAS

The Business Automation database can be used to perform domain-to-Plesk server mapping via a query such as

SELECT ip_address 
   FROM plesk_domain_cache AS domain
   INNER JOIN hw ON hw.hw_id = domain.hw_id
   WHERE plesk_name = :domain
   ORDER BY domain.status = 3 DESC LIMIT 1;

where plesk_domain_cache can be replaced with plesk_domainalias_cache if there was no match with the first query.