Difference between revisions of "PHPProperSizeAllUsers"
From Rackspace Email & Apps API
(New page: <pre> <?php $domain = 'somedomain.com'; $ruser = 'someuser'; $rpass = 'somepass'; $newdomainsize = 100; //Default mailbox size in MB $proximitymultiplier = 1.12; ...) |
(No difference)
|
Latest revision as of 15:58, 25 August 2008
<?php $domain = 'somedomain.com'; $ruser = 'someuser'; $rpass = 'somepass'; $newdomainsize = 100; //Default mailbox size in MB $proximitymultiplier = 1.12; //This allows about 10% padding; 5% = 1.06, 20% = 1.26 $steps = array(250,500,1024,2048,5000); //For tiered pricing; use values from Webmail contract $client = new SoapClient('https://admin.webmail.us/excedentsoap/excedentsoap.wsdl'); $userlist = array(""); $res = $client->__soapCall('GetDomainAllUserCurrentSize', array('ResellerUsername' => $ruser, 'ResellerPassword' => $rpass, 'HostName' => $domain, 'UserStatArray' => $userlist)); $num = count($res[UserStatArray]); $userarray=$res[UserStatArray]; $usernames=array(""); $userPos=0; $usernewsizes=array(0); for ($count=0; $count<$num; $count ) { $thisuserdata = trim($userarray[$count]); $thisuserdataArray = explode(',',$thisuserdata); $user = $thisuserdataArray[0]; $usage = $thisuserdataArray[1]; $approximatesize = $usage * $proximitymultiplier; if ($approximatesize < $newdomainsize) { print $user . " is fine at " . $usage . "/" . $newdomainsize . "\n"; } else { $currentstep = 0; while ($approximatesize > $steps[$currentstep]) { $currentstep ; } $usernames[$userPos]=$user; $usernewsizes[$userPos]=$steps[$currentstep]; $userPos ; } } $res = $client->__soapCall('ModifyDomainMaxMailboxSize', array('ResellerUsername' => $ruser, 'ResellerPassword' => $rpass, 'HostName' => $domain, 'MaxMbxSize' => $newdomainsize)); if ($res == 1) { print "Successfully set " . $domain . " to have a mailbox size of " . $newdomainsize . "MB\n"; } else { print "Couldn\'t set " . $domain . " to have a mailbox size of " . $newdomainsize . "MB with error " . $res . "\n"; } $num = count($usernames); for ($count=0; $count<$num; $count ) { $res = $client->__soapCall('SetUserMailboxMaxSize', array('ResellerUsername' => $ruser, 'ResellerPassword' => $rpass, 'HostName' => $domain, 'UserID' => $usernames[$count], 'MaxMbxSize' => $usernewsizes[$count])); if ($res == 1) { print "Set " . $usernames[$count] . " to " . $usernewsizes[$count] . "\n"; } else { print "Couldn\'t set " . $usernames[$count] . " to " . $usernewsizes[$count] . " with error " . $res . "\n"; } } ?>