Difference between revisions of "PHPAddSubaccounts"

From Rackspace Email & Apps API
Jump to: navigation, search
(New page: Copy and paste this script into an empty file, then make it executable (*nix). It works with PHP that has compiled SOAP support.<br><br> <pre> <?php ####################################...)
 
(No difference)

Latest revision as of 16:58, 25 August 2008

Copy and paste this script into an empty file, then make it executable (*nix). It works with PHP that has compiled SOAP support.

<?php

#################################################################
#                                                               #
#  This script will create subaccounts from a list              #
#                                                               #
#################################################################

$debug=false;

if(($argv[1]=="-h")||($argv[1]=="--help")||(count($argv)<4)||(count($argv)>5)) {
  echo "PHP script to create a list of accounts for a Webmail.us reseller\n";
  echo "Created April 2007 by Kirk Averett\n";
  echo "\n";
  echo "Usage:\n";
  echo "php ".$argv[0]." filename username password [optional separator value] \n";
  echo "\n";
  echo "The username and password should be for an admin login to a reseller account\n";
  echo "The filename should be the file with the list of account names to be created\n";
  echo "'\\n' is the default separator, meaning that each account appears on a separate line\n";
  echo "\n";
  exit;
}

array_shift($argv);
$file=array_shift($argv);
$ruser=array_shift($argv);
$rpass=array_shift($argv);
if(count($argv)==1) {
  $sep = $argv[0];
}
else {
  $sep = "\n";
}
$wsdl="https://admin.webmail.us/excedentsoap/excedentsoap.wsdl";
$client = new SoapClient($wsdl, array('trace' => true, 'exceptions' => true));

$accounts_string=trim(file_get_contents($file));
$accounts_array = explode($sep,$accounts_string); 

$num = count($accounts_array);
for ($i=0; $i<$num; $i++) {
  $currentaccount = trim($accounts_array[$i]);
  if($currentaccount=="") { continue; }
  $res = $client->__soapCall('SearchSubaccounts',
                       array('ResellerUsername' => $ruser,
                             'ResellerPassword' => $rpass,
                             'SubaccountName'   => $currentaccount,
                             'accountList'      => ""));
  if ($res[Result] == 1) {  }
  else { echo "Couldn't search for account ".$currentaccount." with error:\n"; print_r($res); echo "\n"; }
  $subfound = true;
  if ($res[accountList] == "") { $subfound = false; }
  else {
    $subacclistarr = explode("\n",$res[accountList]);
    list($subnum,$subname) = explode(",",$subacclistarr[0]);
    if(!(trim($subname) == $currentaccount)) { $subfound = false; }
  }
  if($subfound == false) { // Add subaccount
    $res = $client->__soapCall('AddSubaccount',
                         array('ResellerUsername' => $ruser,
                               'ResellerPassword' => $rpass,
                               'SubaccountName'   => $currentaccount,
                               'accountNumber'    => ""));
    if ($res[Result] == 1) { echo "New account $currentaccount added to system and identified as #".$res[accountNumber]."\n"; }
    elseif ($res[Result] == -200) { echo "Account exists\n"; }
    else { echo "Could not add ".$currentaccount." as a new account with error:\n"; print_r($res); echo "\n";}
  }
  else { echo "Account $currentaccount already in system\n"; }
}
?>