PHP Code:
<?php
//html form
echo '<html><head></head><body>';
$username = $_POST['username'];
$password = $_POST['password'];
$domain = $_POST['domain'];
echo '<form method="post">';
echo 'domain <input name="domain" type=text size=25 value="'.$domain.'"> ';
echo 'username <input name="username" type=text size=10 value="'.$username.'"> ';
echo 'password <input name="password" type=password size=10 value="'.$password.'"> ';
echo '<input name="submit" type=submit>';
echo '</form>';
//create, remove and list forwarders
if (isset($_POST['submit']))
{
$directadmin = 'https://localhost:2222';
forwarders_create($directadmin, $username, $password, $domain, 'test1', 'test@testuser.nl');
forwarders_create($directadmin, $username, $password, $domain, 'test2', 'test@testuser.nl');
forwarders_create($directadmin, $username, $password, $domain, 'test3', 'test@testuser.nl');
forwarders_remove($directadmin, $username, $password, $domain, 'test2');
$forwarders = forwarders_list($directadmin, $username, $password, $domain);
if ($forwarders === false)
{
echo 'error listing forwarders';
}
else
{
foreach ($forwarders as $from=>$to)
{
echo $from.' => '.$to.'<br>';
}
}
}
echo '</body></html>';
//functions
function directadmin_apiget($directadmin, $username, $password, $request)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
$authstring = base64_encode($username.':'.$password);
$curlheaders[0] = 'Authorization: Basic '.$authstring;
curl_setopt($ch, CURLOPT_HTTPHEADER, $curlheaders);
if (strpos($directadmin, 'https') !== false)
{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_URL, $directadmin.$request);
}
else
{
curl_setopt($ch, CURLOPT_URL, $directadmin.$request);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
function forwarders_list($directadmin, $username, $password, $domain)
{
$request = '/CMD_API_EMAIL_FORWARDERS?domain='.htmlentities($domain);
$result = directadmin_apiget($directadmin, $username, $password, $request);
parse_str($result, $resultarray);
if (@$resultarray['error'] == 1)
{
return false;
}
else
{
return $resultarray;
}
}
function forwarders_create($directadmin, $username, $password, $domain, $from, $to)
{
$request = '/CMD_API_EMAIL_FORWARDERS?domain='.htmlentities($domain).'&action=create&user='.htmlentities($from).'&email='.htmlentities($to);
directadmin_apiget($directadmin, $username, $password, $request);
}
function forwarders_remove($directadmin, $username, $password, $domain, $from)
{
$request = '/CMD_API_EMAIL_FORWARDERS?domain='.htmlentities($domain).'&action=delete&select0='.htmlentities($from);
directadmin_apiget($directadmin, $username, $password, $request);
}
?>