The CommuniGate Pro CLI API can be used to automate the
Server management and to integrate the CommuniGate Pro and other services.
The following document, scripts and samples should help you to integrate CommuniGate Pro with
programs and CGI scripts written in the Perl language.
The CLI.pm package
The CLI.pm Perl module is the main component for CommuniGate Pro scripting.
It contains the package CGP::CLI and includes the routines to connect to the CommuniGate Pro server
over the network, to send CommuniGate Pro CLI commands and to convert command parameters from the
Perl internal format into the CommuniGate Pro CLI format, and to convert command results back
into the Perl internal format.
You should use the new CGP::CLI command to establish an authenticated connection
with the CommuniGate Pro server and to create an interface object. Then you send commands
to the server by calling various interface object methods.
Revision History.
Installation: Simply copy the CLI.pm file into one of the @INC directories. The list of
@INC directories is displayed by perl -V command.
Note: The CGP::CLI class uses IO::Socket::INET class. Depending on your
Perl setup, you may need to modify your CLI.pm file and change the
use IO::Socket; line into use IO::Socket::INET;.
Note: The CLI.pm uses Digest::MD5
module. If you don't have MD5 module installed, you'll have to download and install it.
Sample Scripts
You can use the following sample scripts that employ the CGP::CLI package:
Script file | Description |
CreateUserCGI.pl |
This CGI script composes a custom Auto-Signup page and registers a
user with the CommuniGate Pro Server. |
CreateDomainCGI.pl |
This CGI script composes a custom domain registration page and registers a
domain and postmaster account in that domain with the CommuniGate Pro Server. |
ListAccounts.pl |
This script prints the list of domain accounts and their settings. |
ListTotals.pl |
This script prints the number of accounts, groups and forwarders
in each CommuniGate Pro domain and their total numbers. |
RegUnixUsers.pl |
This script registers all Unix users (i.e. names in the /etc/passwd file) with
the CommuniGate Pro Server. |
DeleteUsers.pl |
This script reads an Account Import file
and deletes all accounts listed in that file |
DeleteInactive.pl |
This script deletes inactive accounts from the
specified CommuniGate Pro domain. |
ImportForwarders.pl |
Use this script to import Forwarders
from a tab-delimitered file. |
ImportGroup.pl |
Use this script to import and update Group
members. |
Web4All.pl |
This sample script modifies the WebSite-related settings in all accounts inside the
specified CommuniGate Pro domain. |
ChangeFrom.pl |
This sample script changes the From addresses of WebMail users inside the
specified CommuniGate Pro domain. |
|
There are more scripts in the Script Repository Page
The Package commands
Package Service Commands
- new CGP::CLI( { PeerAddr=>CGPaddress, PeerPort=>port, login=>username, password=>password})
- Use this command to connect to CommuniGate Pro and log into its PWD server.
Parameters:
- PeerAddr: string
- Domain name or IP address to connect to. The address can be follwed by port number.
- port: string
- Port number (use 106 for PWD). This parameter may be ommited if the port number is specified in PeerAddr.
- username: string
- The administrator account name. The name can contain a domain part.
- password: string
- The administrator account password.
- SecureLogin: string
- Optional parameter. If set to 0 it forces clear-text insecure (USER/PASS) login,
otherwise it forces secure (APOP) login.
- WebUserLogin: string
- Optional parameter. If set to 1 it forces
WEBUSER login.
It can be used only when secure login is disabled.
- SSLTransport: string
- Optional parameter. If set to 1 it forces encrypted (SSL/TLS) connection,
otherwise it uses unencrypted connection.
Returns:
a reference to a new class or undefined.
Example:
my $cli = new CGP::CLI( { PeerAddr => 'company.com',
PeerPort => 106,
login => 'postmaster@company.com',
password => 'pass',
SecureLogin => 0,
SSLTransport => 1
} )
|| die "Can't login to CGPro: ".$CGP::ERR_STRING."\n";
- $CGP::SECURE_LOGIN
- Contents of this variable specifies the default value for SecureLogin parameter of new CGP::CLI() command.
By default it is set to 1 which means secure (APOP) login.
- $CGP::WEBUSER_LOGIN
- Contents of this variable specifies the default value for WebUserLogin parameter of new CGP::CLI() command.
By default it is set to 0.
- $CGP::SSL_TRANSPORT
- Contents of this variable specifies the default value for SSLTransport parameter of new CGP::CLI() command.
By default it is set to 0 which means unencrypted connection.
Example:
$CGP::SECURE_LOGIN=0;
$CGP::WEBUSER_LOGIN=1;
$CGP::SSL_TRANSPORT=1;
- Logout
- Use this command to close the CommuniGate Pro CLI session.
Example:
$cli->Logout();
- getErrCode
- Use this call to get the result code.
Returns:
the result code of the last CommuniGate Pro CLI operation. OK code is 200.
Example:
if($cli->getErrCode!=200) { print "Something's wrong..."; }
- getErrMessage
- Use this call to get the result (error) string produced with the last CommuniGate Pro CLI
operation.
Returns:
result message string from the last command.
Example:
print "The last result message is ".$cli->getErrMessage."\n";
- isSuccess
- Use this call to check if the last operation was successful.
Returns:
TRUE if the result code is 200, FALSE otherwise.
- getErrCommand
- Use this call to get the full text of the last command sent to the CommuniGate Pro Server.
Returns:
the full text of the last command sent to CGPro via CGP::CLI.
- NewPassword(newPassword)
- Use this command to set the new password for the currently used administrator account.
Parameters:
- newPassword: string
- The new password.
- SendCommand(command)
- Use this call to send a direct command to CommuniGatePro CLI.
Returns:
TRUE or FALSE.
Example:
$cli->SendCommand('CreateAccount john@domain.com {RealName="John X Smith";}')
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetResponseData
- Use this call to get the output caused by SendCommand call (if any).
Returns:
The reference to the output data.
Example:
$cli->SendCommand("ListAccounts")
|| die "Error: ".$cli->getErrMessage.", quitting";
$AccountList=$cli->GetResponseData();
foreach(keys %$AccountList) { print "$_\n"; }
The following commands resemble the CommuniGate Pro Server CLI commands, and use the Perl
"hash" and "array" objects for the CommuniGate Pro "dictionary" and "array" objects and "string" ojects as CommuniGate Pro "string", "timestamp", "number", "IP address" and "datablock" objects.
See the CommuniGate Pro CLI manual section for the details.
Account Administration Commands
- ListDomainObjects (domainName,limit[,filter[,what[,cookie]]] )
- Example:
my $data=$cli->ListDomainObjects('company.com',1000,undef,'ACCOUNTS ALIASES FORWARDERS','')
|| die "ListDomainObjects failed: ".$cli->getErrMessage.", quitting";
print "Accoints: $data->[0]\n";
print "Aliases: $data->[2]\n";
print "Forwarders: $data->[3]\n";
print "Objects are:\n";
foreach(keys %{$objects=$data->[1]} ) {
print " $_\n";
}
- ListAccounts ( [domainName] )
- Example:
$AccountList = $cli->ListAccounts('company.com')
|| die "Error: ".$cli->getErrMessage.", quitting";
foreach(keys %$AccountList) { print "$_\n"; }
- ListDomainTelnums (domainName,limit[,filter] )
- CreateAccount( accountName => name, [ settings => userData, accountType => accountType, externalFlag => externalFlag ] );
- Example:
my $UserData = {
AccessModes => [ qw(Mail POP IMAP PWD WebMail WebSite) ],
RealName => 'John X. Smith',
MaxAccountSize => '100K',
};
$cli->CreateAccount(accountName => 'john',settings => $UserData, )
|| die "Error: ".$cli->getErrMessage.", quitting";
- RenameAccount(oldAccountName,newAccountName)
- Example:
$Domain = 'company.com';
$cli->RenameAccount("johnsmith\@$Domain","js\@$Domain")
|| die "Can't rename: ".$cli->getErrMessage.", quitting";
- DeleteAccount(oldAccountName)
- Example:
$cli->DeleteAccount("js")
|| die "Can't delete: ".$cli->getErrMessage.", quitting";
- SetAccountType(AccountName,[MultiMailbox | AGrade | BGrade | CGrade])
- GetAccountSettings(accountName)
- Example:
if($Settings=$cli->GetAccountSettings('user')) {
print "The settings are:\n";
foreach (keys %$Settings) {
print " $_ = \"@$Settings{$_}\"\n";
}
} else {
die "Error: ".$cli->getErrMessage.", quitting";
}
- GetAccountEffectiveSettings(accountName)
- UpdateAccountSettings(accountName,newSettings)
- Example:
$cli->UpdateAccountSettings('john',{Password => 'pass',MaxAccountSize => 'Default'})
|| die "Error: ".$cli->getErrMessage.", quitting";
- SetAccountSettings(accountName,newSettings)
- SetAccountPassword(accountName,newPassword[,check[,method]])
- Example:
$cli->SetAccountPassword('john','newPass')
|| die "Error: ".$cli->getErrMessage.", quitting";
- VerifyAccountPassword(accountName,password)
- Example:
print($cli->VerifyAccountPassword('john','newPass') ? "correct\n" : "wrong\n");
- GetAccountAliases(accountName)
- Example:
if($Aliases=$cli->GetAccountAliases('user')) {
print " $_\n" foreach (@$Aliases);
} else {
($cli->isSuccess) ? print "No aliases\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- SetAccountAliases(accountName,newAliases)
- Example:
$cli->SetAccountAliases('john',['js','jsmith','john_smith'])
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetAccountTelnums(accountName)
- Example:
if($Aliases=$cli->GetAccountTelnums('user')) {
print " $_\n" foreach (@$Aliases);
} else {
($cli->isSuccess) ? print "No telnums\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- SetAccountTelnums(accountName,newTelnums)
- Example:
$cli->SetAccountTelnums('john',['11110000','11110011'])
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetAccountMailRules(accountName)
- Example:
my $Rules=$cli->GetAccountMailRules('john')
|| die "Error: ".$cli->getErrMessage.", quitting";
foreach my $Rule (@$Rules) {
my $conditions=$Rule->[2],$actions=$Rule->[3];
print "\nName='$Rule->[1]' Priority=$Rule->[0]\n";
print " If\n ";
foreach my $cond (@$conditions) {
print " $_ " foreach (@$cond);
print "\n ";
}
print "Then\n ";
foreach my $actn (@$actions) {
print " $_ " foreach (@$actn);
print "\n ";
}
}
- SetAccountMailRules(accountName,newRules)
- Example:
my @Rules =(
[ 5, '#Vacation',
[['Human Generated', '---']],
[['Reply with', "Sorry, I'm on vacation"]]
],
[ 5,'Mark Important Messages',
[ ['Subject', 'is', '*important*'] ],
[ ['Mark', 'Flagged'],
['FingerNotify', '123.45.67.89'],
['Forward to', 'my@home.address']
]
]
);
$cli->SetAccountMailRules('jonh',\@Rules)
|| die "Error: ".$cli->getErrMessage.", quitting";
- UpdateAccountMailRule(accountName,newRule)
- GetAccountSignalRules(accountName)
- SetAccountSignalRules(accountName,newRules)
- UpdateAccountSignalRule(accountName,newRule)
- GetAccountRPOPs(accountName)
- Example:
my $records=$cli->GetAccountRPOPs('john')
|| die "Error: ".$cli->getErrMessage.", quitting";
foreach(keys %$records) {
print "Record: $_\n";
my $rec=@$records{$_};
foreach(keys %$rec) {
print " $_=@$rec{$_}\n";
}
}
- SetAccountRPOPs(accountName,newRecords)
- Example:
my $records=$cli->GetAccountRPOPs('john')
|| die "Error: ".$cli->getErrMessage.", quitting";
my $newRecord={authName=>'john',domain=>'host.com',password=>'passw', APOP=>'YES',period=>'1200s'};
@$records{'polling host.com'}=$newRecord;
$cli->SetAccountRPOPs('john',$records)
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetAccountRSIPs(accountName)
- SetAccountRSIPs(accountName,newRecords)
- UpdateScheduledTask(accountName,taskData)
- GetAccountRights(accountName)
- Example:
if($Rights=$cli->GetAccountRights('john')) {
print "$_ " foreach (@$Rights); print "\n";
} else {
($cli->isSuccess) ? print "No rights\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- SetAccountRights(accountName,newRights)
- Example:
$cli->SetAccountRights('john',['UserAccounts', 'ServerSettings', 'Monitor'])
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetAccountInfo(accountName[,keyName | \@keys])
- Example:
if($Data=$cli->GetAccountInfo('john')) {
print "The data are:\n";
foreach (keys %$Data) {
print " $_ = \"@$Data{$_}\"\n";
}
} else {
die "Error: ".$cli->getErrMessage.", quitting";
}
if($Data=$cli->GetAccountInfo('john','LastLogin')) {
print "John\'s last login was on $Data\n";
} else {
($cli->isSuccess) ? print "No such info\n"
: die "Error: ".$cli->getErrMessage.", quitting";
- GetAccountPrefs(accountName)
- Example:
if($Settings=$cli->GetAccountPrefs('john')) {
print "The settings are:\n";
foreach (keys %$Settings) {
print " $_ = \"@$Settings{$_}\"\n";
}
} else {
die "Error: ".$cli->getErrMessage.", quitting";
}
- SetAccountPrefs(accountName,newSettings)
- UpdateAccountPrefs(accountName,newSettings)
- Example:
$Account='John';
my %Settings=(
Frames => 'YES',
DraftsBox => 'DRAFTS',
SentBox => 'OUTBOX',
Signature => 'Sincerely yours,\e '.$Account
);
$cli->UpdateAccountPrefs($Account,\%Settings) ||
die "Error: ".$cli->getErrMessage.", quitting";
- GetAccountEffectivePrefs(accountName)
- KillAccountSessions(accountName)
- GetAccountACL(accountName [,authAccountName])
- SetAccountACL(accountName,newACL [,authAccountName])
- GetAccountACLRights(accountName ,authAccountName)
- GetAccountLocation(accountName)
- Example:
if($path=$cli->GetAccountLocation('user')) {
print "The account directory is $path\n";
} else {
die "Error: ".$cli->getErrMessage.", quitting";
}
- GetAccountPresence(accountName)
Group Administration Commands
- ListGroups
- Example:
my $GroupsList = $cli->ListGroups('company.com')
|| die "Can't get the groups list: ".$cli->getErrMessage.", quitting";
print "The group(s):\n";
print " $_\n" foreach(@$GroupsList);
- CreateGroup(groupName, [ settings ])
- Example:
my %Settings=(
RealName => "Sales staff",
Members => ['john', 'susan', 'sales_box#mary', 'bill@partner.dom'],
FinalDelivery => 'YES',
RemoveToAndCc => 'YES',
SetReplyTo => 'YES',
);
$cli->CreateGroup('sales',\%Settings) ||
die "Error: ".$cli->getErrMessage.", quitting";
- RenameGroup(oldGroupName,newGroupName)
- Example:
$cli->RenameGroup('sales','support')
|| die "Error: ".$cli->getErrMessage.", quitting";
- DeleteGroup(oldGroupName)
- Example:
$cli->DeleteGroup('support')
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetGroup(groupName)
- Example:
if($Settings=$cli->GetGroup('sales')) {
print "The settings are:\n";
foreach (keys %$Settings) {
my $data=@$Settings{$_};
print " $_ = ";
if(ref ($data) eq 'ARRAY') {
foreach my $member (@$data) {
print "\'$member\' ";
}
print "\n";
} else {
print "\"$data\"\n";
}
}
} else {
die "Error: ".$cli->getErrMessage.", quitting";
}
- SetGroup(groupName, settings)
- Example:
$Settings=$cli->GetGroup('sales')
|| die "Error: ".$cli->getErrMessage.", quitting";
@$Settings{'Members'}=[] unless(@$Settings{'Members'});
my $Members=@$Settings{'Members'};
push(@$Members,'sales_box#mary@company.com');
$cli->SetGroup('sales',$Settings) ||
die "Error: ".$cli->getErrMessage.", quitting";
Forwarder Administration Commands
- ListForwarders
- Example:
my $ForwardersList = $cli->ListForwarders('company.com')
|| die "Can't get the forwarders list: ".$cli->getErrMessage.", quitting";
print "The forwarder(s):\n";
print " $_\n" foreach(@$ForwardersList);
- CreateForwarder(forwarderName,address)
- Example:
$cli->CreateForwarder('john','john@external.site.com')
|| die "Error: ".$cli->getErrMessage.", quitting";
- RenameForwarder(forwarderName,newName)
- DeleteForwarder(forwarderName)
- Example:
$cli->DeleteForwarder('john')
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetForwarder(forwarderName)
- Example:
if($data=$cli->GetForwarder('john')) {
print "Address is \"$data\"\n";
} else {
die "Error: ".$cli->getErrMessage.", quitting";
}
FindForwarders(domainName,forwarderAddress)
Named Task Administration Commands
- ListDomainNamedTasks( [domain] )
- ListAccountNamedTasks(account)
- CreateNamedTask(taskName,account)
- RenameNamedTask(taskName,newName)
- DeleteNamedTask(taskName)
- GetNamedTask(taskName)
- UpdateNamedTask(taskName,settings)
Domain Administration Commands
- ListDomains
- Example:
my $DomainList = $cli->ListDomains()
|| die "Can't get the domain list: ".$cli->getErrMessage.", quitting";
print "The domain(s):\n";
print " $_\n" foreach(@$DomainList);
- MainDomainName
- Example:
my $MainDomainName=$cli->MainDomainName()
|| die "Error: ".$cli->getErrMessage.", quitting";
print "The main domain name is $MainDomainName\n";
- GetDomainSettings( [domainName] )
- Example:
if($Settings=$cli->GetDomainSettings) {
print "The domain settings are:\n";
print " $_ = \"@$Settings{$_}\"\n" foreach (keys %$Settings);
} else {
die "Error: ".$cli->getErrMessage.", quitting" if(!$cli->isSuccess);
}
- GetDomainEffectiveSettings( [domainName] )
- UpdateDomainSettings(domain => domainName, settings => newSettings)
- Example:
$cli->UpdateDomainSettings(domain => 'www.company.com',
settings => { WebUserCache => "NO" })
|| die "Error: ".$cli->getErrMessage.", quitting";
- SetDomainSettings(domain => domainName, settings => newSettings)
- CreateDomainStorage($path[,'SHARED'])
- Example:
$cli->CreateDomainStorage("Volume1",'SHARED')
|| die "Can't create mount point: ".$cli->getErrMessage.", quitting";
- ListDomainStorage(['SHARED'])
- Example:
my $data=$cli->ListDomainStorage('SHARED');
die "Error: ".$cli->getErrMessage.", quitting" if(!$cli->isSuccess);
print "mount point: $_\n" foreach(@$data);
- CreateDomain(domainName [, settings [,$path[,'SHARED']]])
- Example:
$cli->CreateDomain('mail.company.com',{AutoSignup => 'YES'})
|| die "Error: ".$cli->getErrMessage.", quitting";
- CreateDirectoryDomain(domainName, [ settings ])
- RenameDomain(oldDomainName,newDomainName)
- Example:
$cli->RenameDomain('old.company.com','new.company.com')
|| die "Error: ".$cli->getErrMessage.", quitting";
- DeleteDomain(domainName, [force])
- Example:
$cli->DeleteDomain('test.company.com',1)
|| die "Error: ".$cli->getErrMessage.", quitting";
- SuspendDomain(domainName)
- ResumeDomain(domainName)
- CreateAccountStorage(domainName,path)
- ListAccountStorage(domainName)
- Example:
$cli->CreateDomainStorage('test.company.com',"my_dir")
|| die "Can't create mount point: ".$cli->getErrMessage.", quitting";
my $data=$cli->ListAccountStorage('test.company.com');
die "Error: ".$cli->getErrMessage.", quitting" if(!$cli->isSuccess);
print "mount point: $_\n" foreach(@$data);
- GetDomainAliases(domainName)
- Example:
if($Aliases=$cli->GetDomainAliases('company.com')) {
print "The aliases are:\n";
print " $_\n" foreach (@$Aliases);
} else {
($cli->isSuccess) ? print "No aliases\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- SetDomainAliases(domainName, newAliases)
- Example:
my @Aliases=(
'mail.company.com',
'smtp.company.com'
);
$cli->SetDomainAliases('company.com',\@Aliases)
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetDomainMailRules(domainName)
- SetDomainMailRules(domainName, newRules)
- GetDomainSignalRules(domainName)
- SetDomainSignalRules(domainName, newRules)
- ListAdminDomains( [domainName] )
- Example:
my $DomainList = $cli->ListAdminDomains('company.com')
|| die "Can't get the list of admin domains: ".$cli->getErrMessage.", quitting";
print "The admin domain(s):\n";
print " $_\n" foreach(@$DomainList);
- InsertDirectoryRecords( [domainName] )
- DeleteDirectoryRecords( [domainName] )
- GetServerTrustedCerts()
- SetServerTrustedCerts(newCertificates)
- GetClusterTrustedCerts()
- SetClusterTrustedCerts(newCertificates)
- GetDirectoryIntegration
- Example:
if($Settings=$cli->GetDirectoryIntegration) {
print "The directory integration settings are:\n";
foreach (keys %$Settings) {
my $data=@$Settings{$_};
print " $_ = ";
if(ref ($data) eq 'ARRAY') {
print join(",",@$data)."\n";
}elsif(ref($data) eq 'HASH') {
print "{";
print "$_=@$data{$_};" foreach (keys %$data);
print "}\n";
} else {
print "\"$data\"\n";
}
}
} else {
die "Error: ".$cli->getErrMessage.", quitting" if(!$cli->isSuccess);
}
- SetDirectoryIntegration(newSettings)
- Example:
$Settings=$cli->GetDirectoryIntegration()
|| die "Error: ".$cli->getErrMessage.", quitting";
my $Attributes=@$Settings{'CustomAttributes'};
push(@$Attributes,"MyAttr");
$cli->SetDirectoryIntegration($Settings)
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetClusterDirectoryIntegration
- SetClusterDirectoryIntegration(newSettings)
- GetDomainDefaults
- Example:
if($Defaults=$cli->GetDomainDefaults()) {
print "The default domain settings are:\n";
print " $_ = \"@$Defaults{$_}\"\n" foreach (keys %$Defaults);
} else {
($cli->isSuccess) ? print "No default domain settings.\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- UpdateDomainDefaults(newSettings)
- Example:
$cli->UpdateDomainDefaults({MailToUnknown => "Rejected"})
|| die "Error: ".$cli->getErrMessage.", quitting";
- SetDomainDefaults(newSettings)
- GetClusterDomainDefaults
- UpdateClusterDomainDefaults(newSettings)
- SetClusterDomainDefaults(newSettings)
- GetServerAccountDefaults
- Example:
if($Defaults=$cli->GetServerAccountDefaults()) {
print "The default settings are:\n";
print " $_ = \"@$Defaults{$_}\"\n" foreach (keys %$Defaults);
} else {
($cli->isSuccess) ? print "No default settings.\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- UpdateServerAccountDefaults(newSettings)
- Example:
$cli->UpdateServerAccountDefaults({AccessModes => "All"})
|| die "Error: ".$cli->getErrMessage.", quitting";
- SetServerAccountDefaults(newSettings)
- GetClusterAccountDefaults
- SetClusterAccountDefaults(newSettings)
- UpdateClusterAccountDefaults(newSettings)
- GetServerAccountPrefs
- UpdateServerAccountPrefs(newSettings)
- SetServerAccountPrefs(newSettings)
- GetClusterAccountPrefs
- UpdateClusterAccountPrefs(newSettings)
- SetClusterAccountPrefs(newSettings)
- GetDomainLocation(domainName)
- Example:
if($path=$cli->GetDomainLocation('company.com')) {
print "The domain directory is /var/CommuniGate/$path\n";
} else {
die "Error: ".$cli->getErrMessage.", quitting";
}
- ListServerTelnums (limit[,filter] )
- ListClusterTelnums (limit[,filter] )
- GetAccountDefaults( [domainName ] )
- Example:
if($Defaults=$cli->GetAccountDefaults) {
print "The account defaults are:\n";
print " $_ = \"@$Defaults{$_}\"\n" foreach (keys %$Defaults);
} else {
die "Error: ".$cli->getErrMessage.", quitting" if(!$cli->isSuccess);
}
- UpdateAccountDefaults( domain => domainName, settings => newSettings)
- Example:
$cli->UpdateAccountDefaults(domain => 'company.com',
settings => {MaxAccountSize => '100K'})
|| die "Error: ".$cli->getErrMessage.", quitting";
- SetAccountDefaults( domain => domainName, settings => newSettings)
- GetAccountDefaultPrefs( [domainName ] )
- Example:
if($Defaults=$cli->GetAccountDefaultPrefs()) {
print "The WebUser defaults are:\n";
print " $_ = \"@$Defaults{$_}\"\n" foreach (keys %$Defaults);
} else {
die "Error: ".$cli->getErrMessage.", quitting" if(!$cli->isSuccess);
}
- SetAccountDefaultPrefs( domain => domainName, settings => newSettings)
- UpdateAccountDefaultPrefs( domain => domainName, settings => newSettings)
- Example:
my %Settings=(
Charset => 'ISO-8859-1',
Fields => [ qw(From Sender Subject Date To Cc) ]
);
$cli->UpdateAccountDefaultPrefs(settings=>\%Settings)
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetAccountTemplate( [domainName] )
- Example:
if($Template=$cli->GetAccountTemplate) {
print "The template account settings are:\n";
print " $_ = \"@$Template{$_}\"\n" foreach (keys %$Template);
} else {
die "Error: ".$cli->getErrMessage.", quitting" if(!$cli->isSuccess);
}
- UpdateAccountTemplate(domain => domainName, settings => newSettings);
- Example:
$cli->UpdateAccountTemplate(domain => 'company.com',
settings => { RealName => 'Unnamed',Password => ''})
|| die "Error: ".$cli->getErrMessage.", quitting";
- SetAccountTemplate(domain => domainName, settings => newSettings);
Mailbox Administration Commands
- ListMailboxes(accountName => account,[ filter => '*',] [authAccountName => extAccount]);
- Example:
my $Boxes= $cli->ListMailboxes(accountName=>'john',filter=>'INBOX*')
|| die "Error: ".$cli->getErrMessage.", quitting";
foreach (sort keys %$Boxes) {
print "$_\n";
my $data=@$Boxes{$_};
if(ref $data eq 'ARRAY') {
$data=@$data[0];
}
if(ref $data eq 'HASH') {
foreach (keys %$data) {
print " $_ = @$data{$_}\n";
}
}
}
- CreateMailbox(accountName,mailboxName[,authAccountName]);
- Example:
$cli->CreateMailbox('john','SharedItems')
|| die "Error: ".$cli->getErrMessage.", quitting";
- RenameMailbox(accountName,oldMailboxName,newMailboxName[,authAccountName]);
- RenameMailboxes(accountName,oldMailboxName,newMailboxName[,authAccountName]);
- Example:
$cli->RenameMailbox('john','myItems','SharedItems')
|| die "Error: ".$cli->getErrMessage.", quitting";
- DeleteMailbox(accountName,mailboxName[,authAccountName]);
- DeleteMailboxes(accountName,mailboxName[,authAccountName]);
- Example:
$cli->DeleteMailbox('john','SharedItems')
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetMailboxInfo(accountName,mailboxName[,authAccountName]);
- Example:
my $info = $cli->GetMailboxInfo('john','SharedItems')
|| die "Error: ".$cli->getErrMessage.", quitting";
foreach (sort keys %$info) {
my $data=@$info{$_};
if(ref $data eq 'HASH') {
print " $_:\n";
foreach (keys %$data) {
print " $_ = @$data{$_}\n";
}
} else {
print " $_ = @$info{$_}\n";
}
}
- GetMailboxACL(accountName,mailboxName[,authAccountName]);
- Example:
my $acl = $cli->GetMailboxACL('john','SharedItems')
|| die "Error: ".$cli->getErrMessage.", quitting";
foreach (keys %$acl) {
print " $_ = @$acl{$_}\n";
}
- SetMailboxACL(accountName,mailboxName,newACL[,authAccountName]);
- Example:
my %newACL=(
"boss" => 'ipcda',
"+susan" => 'lrsw',
);
$cli->SetMailboxACL('john','SharedItems',\%newACL)
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetMailboxRights(accountName,mailboxName,authAccountName);
- Example:
if($Rights= $cli->GetMailboxRights('john','SharedItems','boss')) {
print "The rights = $Rights\n";
} else {
($cli->isSuccess) ? print "The boss account has no rights to access this mailbox\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- SetMailboxClass(accountName,mailboxName,class [,authAccountName]);
- Example:
$cli->SetMailboxClass('john','Calendar','IPF.Appointment')
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetMailboxSubscription(accountName);
- Example:
if($Subscription= $cli->GetMailboxSubscription('john')) {
print "The subscription: ".join(",",@$Subscription)."\n";
} else {
($cli->isSuccess) ? print "This account has no subscribed mailboxes\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- SetMailboxSubscription(accountName,newSubscription);
- Example:
$Subscription= $cli->GetMailboxSubscription('john')
|| die "Error: ".$cli->getErrMessage.", quitting";
push(@$Subscription,'~user@company.com/INBOX');
$cli->SetMailboxSubscription('john',$Subscription)
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetMailboxAliases(accountName);
- Example:
if($Aliases=$cli->GetMailboxAliases('john')) {
print "The aliases are:\n";
foreach (keys %$Aliases) {
print " $_ = @$Aliases{$_}\n";
}
} else {
($cli->isSuccess) ? print "No aliases\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- SetMailboxAliases(accountName,newAliases);
- Example:
$Aliases=$cli->GetMailboxAliases('john')
|| die "Error: ".$cli->getErrMessage.", quitting";
@$Aliases{'ExternalBox'}='~user@company.com/INBOX';
$cli->SetMailboxAliases('john',$Aliases)
|| die "Error: ".$cli->getErrMessage.", quitting";
Alert Administration Commands
- GetDomainAlerts( [domainName] )
- Example:
$Alerts=$cli->GetDomainAlerts('company.com')
|| die "Error: ".$cli->getErrMessage.", quitting";
foreach(keys %$Alerts) {
my ($xx,$yr,$mn,$dy,$hr,$min,$sec)=split(/(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/);
print "$dy.$mn.$yr $hr:$min:$sec - @$Alerts{$_}\n";
}
- SetDomainAlerts(domainName,alerts)
- Example:
my %Alerts =(
'19991225235959' => 'Merry Christmas!',
'20000101000000' => 'Happy New Year!',
);
$cli->SetDomainAlerts('company.com',\%Alerts)
|| die "Error: ".$cli->getErrMessage.", quitting";
- PostDomainAlert(domainName,alert)
- Example:
$cli->PostDomainAlert('company.com',"We're shutting down in 10 minutes!")
|| die "Error: ".$cli->getErrMessage.", quitting";
- RemoveDomainAlert(domainName,timeStamp)
- Example:
$cli->PostDomainAlert('company.com','20000101000000')
|| die "Can't remove the NewYear alert: ".$cli->getErrMessage.", quitting";
- GetAccountAlerts(accountName)
- SetAccountAlerts(accountName,alerts)
- PostAccountAlert(accountName,alert)
- RemoveAccountAlert(accountName,timeStamp)
- GetServerAlerts()
- SetServerAlerts(alerts)
- PostServerAlert(alert)
- RemoveServerAlert(timeStamp)
- GetClusterAlerts()
- SetClusterAlerts(alerts)
- PostClusterAlert(alert)
- RemoveClusterAlert(timeStamp)
File Storage Administration
- ReadStorageFile(accountName,fileName [,position,sliceSize[,authAccountName]])
- Example:
$data=$cli->ReadStorageFile('john','logo.gif')
|| die "Error: ".$cli->getErrMessage.", quitting";
print "File data=$data->[0]\n";
print "File modification date: @$data[1] size: @$data[2]\n";
- WriteStorageFile(accountName,fileName,data [,position[,authAccountName]]
- RenameStorageFile(accountName,oldFileName,newFileName[,authAccountName])
- Example:
$cli->RenameStorageFile('john','StalkerLogo.gif','logo.gif')
|| die "Error: ".$cli->getErrMessage.", quitting";
- DeleteStorageFile(accountName,fileName[,authAccountName])
- Example:
$cli->DeleteStorageFile('john','logo.gif')
|| die "Error: ".$cli->getErrMessage.", quitting";
- ListStorageFiles(accountName [,filePath[,authAccountName]])
- Example:
if($Files=$cli->ListStorageFiles('john')) {
print "The files are:\n";
print " $_\n" foreach (keys %$Files);
} else {
($cli->isSuccess) ? print "No web files.\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- GetStorageFileInfo(accountName[,filePath[,authAccountName])
- Example:
$data=$cli->GetStorageFileInfo('john')
|| die "Error: ".$cli->getErrMessage.", quitting";
print "There are $data->[1] files $data->[0] bytes total\n";
ReadStorageFileAttr(accountName,fileName[,attributes[,authAccountName]])
UpdateStorageFileAttr(accountName,fileName,attributes[,authAccountName])
GetFileSubscription($accountName)
SetFileSubscription($accountName, \@newSubscription)
Mailing Lists Administration Commands
- ListLists( [domainName] )
- Example:
if($Lists=$cli->ListLists('company.com')) {
print "The lists are:\n";
print " $_\n" foreach (@$Lists);
} else {
($cli->isSuccess) ? print "No lists.\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- GetDomainLists( [domainName] )
- Example:
$Lists=$cli->GetDomainLists('company.com'))
|| die "Error: ".$cli->getErrMessage.", quitting";
print "The lists are:\n";
foreach (keys %$Lists) {
my $nSubs=@$Lists{$_};
$nSubs='unknown' if $nSubs==-1;
print " $_ ($nSubs)\n";
}
- GetAccountLists(accountName)
- Example:
$Lists=$cli->GetAccountLists('listmaster'))
|| die "Error: ".$cli->getErrMessage.", quitting";
print "The lists are:\n";
foreach (keys %$Lists) {
my $nSubs=@$Lists{$_};
$nSubs='unknown' if $nSubs==-1;
print " $_ ($nSubs)\n";
}
- CreateList(listName,accountName)
- Example:
$cli->CreateList('TestList@company.com','john')
|| die "Error: ".$cli->getErrMessage.", quitting";
- RenameList(listName,newName)
- Example:
$cli->RenameList('TestList@company.com','InfoList')
|| die "Error: ".$cli->getErrMessage.", quitting";
- DeleteList(listName)
- Example:
$cli->DeleteList('InfoList@company.com')
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetList(listName)
- Example:
if($Settings=$cli->GetList('TestList@company.com')) {
print "The list settings are:\n";
print " $_ = \"@$Settings{$_}\"\n" foreach (keys %$Settings);
} else {
($cli->isSuccess) ? print "Nothing...\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- UpdateList(listName,newSettings)
- Example:
$cli->UpdateList('TestList@company.com',{RealName => "the test list"})
|| die "Error: ".$cli->getErrMessage.", quitting";
- List(listName, operation, subscriber, [options])
- Example:
$cli->List("myList", 'subscribe',
'"John Smith" <john@company.com>',
'silently','confirm')
|| die "Can't subscribe John: ".$cli->getErrMessage.", quitting";
- ListSubscribers(listName [, filter[, limit]])
- Example:
my $subscribers=$cli->ListSubscribers("myList", '', 10)
|| die "Can't list subscribers: ".$cli->getErrMessage.", quitting";
print " $_\n" foreach(@$subscribers);
- GetSubscriberInfo(listName,subscriberAddress)
- Example:
if($Infos=$cli->GetSubscriberInfo('TestList@company.com','user@domain.com')) {
print "The subscriber info:\n";
foreach (keys %$Infos) {
print " $_ = \"@$Infos{$_}\"\n";
}
} else {
die "Error: ".$cli->getErrMessage.", quitting";
}
- SetPostingMode(listName,subscriberAddress, mode)
- Example:
$cli->SetPostingMode('TestList@company.com','user@domain.com',"UNMODERATED")
|| die "Error: ".$cli->getErrMessage.", quitting";
ProcessBounce(listName,subscriberAddress [,fatal] )
Example:
$cli->ProcessBounce('TestList@company.com','user@domain.com',0)
|| die "Error: ".$cli->getErrMessage.", quitting";
Web Skins Administration
- ListDomainSkins( [domainName] )
- Example:
my $Files= $cli->ListDomainSkins('company.com')
|| die "Error: ".$cli->getErrMessage.", quitting";
print (($_ eq '') ? "Basic skin\n" : "$_\n") foreach (@$Files);
- CreateDomainSkin(domainName,skinName)
- Example:
$cli->CreateDomainSkin('company.com',"mySkin1")
|| die "Error: ".$cli->getErrMessage.", quitting";
- RenameDomainSkin(domainName,oldSkinName,newSkinName)
- Example:
$cli->RenameDomainSkin('company.com',"mySkin1","mySkin")
|| die "Error: ".$cli->getErrMessage.", quitting";
- DeleteDomainSkin(domainName,skinName)
- ListDomainSkinFiles(domainName,skinName)
- Example:
my $Files= $cli->ListDomainSkinFiles('company.com',"MySkin")
|| die "Error: ".$cli->getErrMessage.", quitting";
foreach (sort keys %$Files) {
print "$_\n";
my $data=@$Files{$_};
if(ref $data eq 'HASH') {
foreach (keys %$data) {
print " $_ = @$data{$_}\n";
}
}
}
- ReadDomainSkinFile(domainName,skinName,fileName)
- Example:
my $Data = $cli->ReadDomainSkinFile('company.com',"MySkin",'logo.gif')
|| die "Error: ".$cli->getErrMessage.", quitting";
print "Date (YyyyMmDdHhMmSs): @$Data[1]\n";
print "Base64 data: @$Data[0]\n";
- StoreDomainSkinFile(domainName,skinName,fileName,base64data)
- Example:
use MIME::Base64;
$cli->StoreDomainSkinFile('company.com',"MySkin",'logo.gif',encode_base64($data, ""))
|| die "Error: ".$cli->getErrMessage.", quitting";
- DeleteDomainSkinFile(domainName,skinName,fileName)
- ListServerSkins
- Example:
my $Files= $cli->ListServerSkins()
|| die "Error: ".$cli->getErrMessage.", quitting";
print (($_ eq '') ? "Basic skin\n" : "$_\n") foreach (@$Files);
- CreateServerSkin(skinName)
- RenameServerSkin(oldSkinName,newSkinName)
- DeleteServerSkin(skinName)
- ListServerSkinFiles(skinName)
- ReadServerSkinFile(skinName,fileName)
- StoreServerSkinFile(skinName,fileName,base64data)
- DeleteServerSkinFile(skinName,fileName)
- ListClusterSkins
- CreateClusterSkin(skinName)
- RenameClusterSkin(oldSkinName,newSkinName)
- DeleteClusterSkin(skinName)
- ListClusterSkinFiles(skinName)
- ReadClusterSkinFile(skinName,fileName)
- StoreClusterSkinFile(skinName,fileName,base64data)
- DeleteClusterSkinFile(skinName,fileName)
- ListStockSkinFiles(skinName)
- ReadStockSkinFile(skinName,fileName)
Web Interface Tuning Commands
- ListWebUserInterface( [domainName] )
- Example:
my $Files= $cli->ListWebUserInterface('company.com')
|| die "Error: ".$cli->getErrMessage.", quitting";
foreach (sort keys %$Files) {
print "$_\n";
my $data=@$Files{$_};
if(ref $data eq 'HASH') {
foreach (keys %$data) {
print " $_ = @$data{$_}\n";
}
}
}
- GetWebUserInterface(domainName,fileName)
- Example:
my $FileData= $cli->GetWebUserInterface('*','default.html')
|| die "Error: ".$cli->getErrMessage.", quitting";
print $FileData;
- PutWebUserInterface(domainName,fileName,fileBase64Data)
- DeleteWebUserInterface(domainName,fileName)
- Example:
$cli->DeleteWebUserInterface('*','default.html')
|| die "Error: ".$cli->getErrMessage.", quitting";
- ClearWebUserCache( [domainName] )
- Example:
$cli->ClearWebUserCache('company.com')
|| die "Error: ".$cli->getErrMessage.", quitting";
Web Interface Integration Commands
- CreateWebUserSession( accountName, IP_ADDRESS [, WML[,skinName[,origAddress]]] )
- Example:
my $sessionID=$cli->CreateWebUserSession('user','127.0.0.1',0)
|| die "Error: ".$cli->getErrMessage.", quitting";
print "$sessionID\n";
- CreateXIMSSSession( accountName, IP_ADDRESS [,origAddress] )
- FindAccountSession( accountName [,IP_ADDRESS,proxiedAddress,protocol,transport,client] )
- ListAccountSessions( accountName [,IP_ADDRESS,proxiedAddress,protocol,transport,client] )
- Example:
my $data=$cli->ListAccountSessions('user')
|| die "Error: ".$cli->getErrMessage;
print "The sessions are:\n";
print "$_\n" foreach(@$data);
- GetSession( sessionID [,domainName] )
- Example:
my $data=$cli->GetSession('1-pIX3cdbUQIGg79Nx03b4')
|| die "Error: ".$cli->getErrMessage;
print "The sessions data are: ".$cli->printWords($data)."\n";
- KillSession( sessionID [,domainName] )
Real-Time Application Administration Commands
- CreateDomainPBX( domainName [,language] )
- Example:
$cli->CreateDomainPBX('company.com',"japanese")
|| die "Error: ".$cli->getErrMessage.", quitting";
- DeleteDomainPBX( domainName ,language )
- Example:
$cli->DeleteDomainPBX('company.com',"japanese")
|| die "Error: ".$cli->getErrMessage.", quitting";
- ListDomainPBXFiles( domainName [,language] )
- Example:
my $Files= $cli->ListDomainPBXFiles('company.com','japanese')
|| die "Error: ".$cli->getErrMessage.", quitting";
foreach (sort keys %$Files) {
print "$_\n";
my $data=@$Files{$_};
if(ref $data eq 'HASH') {
foreach (keys %$data) {
print " $_ = @$data{$_}\n";
}
}
}
- ReadDomainPBXFile( domainName , fileName )
Note:To retrieve a file from a national subset, specify the name as
language/fileName.
- StoreDomainPBXFile( domainName , fileName, base64data )
- Example:
use MIME::Base64;
$cli->StoreDomainPBXFile('company.com','sound.wav',encode_base64($data, ""))
|| die "Error: ".$cli->getErrMessage.", quitting";
- DeleteDomainPBXFile( domainName , fileName )
- CreateServerPBX( language )
- DeleteServerPBX( language )
- ListServerPBXFiles( [language] )
- ReadServerPBXFile( fileName )
- StoreServerPBXFile( fileName, base64data )
- DeleteServerPBXFile( fileName )
- CreateClusterPBX( language )
- DeleteClusterPBX( language )
- ListClusterPBXFiles( [language] )
- ReadClusterPBXFile( fileName )
- StoreClusterPBXFile( fileName, base64data )
- DeleteClusterPBXFile( fileName )
- ListStockPBXFiles( [language] )
- ReadStockPBXFile( fileName )
Real-Time Application Control Commands
- StartPBXTask( account, program [,entryName,param] )
- SendTaskEvent( taskID, eventName [,param] )
- KillNode( taskID )
- ReadNodeStatus( taskID )
Account Services Commands
- RemoveAccountSubset(accountName,subsetName)
- Example:
$cli->RemoveAccountSubset('user','RepliedAddresses')
|| die "Can't remove: ".$cli->getErrMessage;
- Balance(accountName,\%parameters)
- Example:
my $data=$cli->Balance('user',{ op=>'credit', balance=>'newBalance', amount=>'100' } )
|| die "Can't credit: ".$cli->getErrMessage;
- Roster(accountName,\%parameters)
- Example:
my $data=$cli->Roster('user',{ what=>'List' } )
|| die "Can't get buddies list: ".$cli->getErrMessage;
print "The buddies are:\n";
foreach (sort keys %$data) {
print "$_ $data->{$_}->{RealName}\n";
}
- Dataset(accountName,\%parameters)
Server Setting Commands
- ListModules()
- GetModule(moduleName)
- Example:
if($Settings=$cli->GetModule('SMTP')) {
print "The SMTP settings are:\n";
print " $_ = \"@$Settings{$_}\"\n" foreach (keys %$Settings);
} else {
($cli->isSuccess) ? print "Nothing...\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- UpdateModule(moduleName,newSettings)
- Example:
$cli->UpdateModule("SMTP",{LogLevel => 3})
|| die "Error: ".$cli->getErrMessage.", quitting";
- SetModule(moduleName,newSettings)
- GetQueueSettings()
- SetQueueSettings(newSettings)
- GetSignalSettings()
- SetSignalSettings(newSettings)
- GetMediaServerSettings()
- SetMediaServerSettings(newSettings)
- GetSessionSettings()
- SetSessionSettings(newSettings)
- GetClusterSettings()
- SetClusterSettings(newSettings)
- GetLogSettings()
- UpdateLogSettings(newSettings)
- GetLANIPs
- GetBlacklistedIPs
- Example:
if($Data = $cli->GetBlacklistedIPs()) {
$Data =~ s/\\e/\n/g;
print "$Data\n";
} else {
($cli->isSuccess) ? print "No addresses entered\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- GetClientIPs
- GetWhiteHoleIPs
- GetNATedIPs
- GetNATSiteIPs
- GetDebugIPs
- GetDeniedIPs
- GetNetwork
- GetDNRSettings
- GetBanned
- SetLANIPs(addresses)
- SetBlacklistedIPs(addresses)
- Example:
$cli->SetBlacklistedIPs('11.22.33.44\e33.44.55.66')
|| die "Error: ".$cli->getErrMessage.", quitting";
- SetClientIPs(addresses)
- SetWhiteHoleIPs(addresses)
- SetNATedIPs(settings)
- SetNATSiteIPs(settings)
- SetDebugIPs(settings)
- SetDeniedIPs(settings)
- SetNetwork(settings)
- SetDNRSettings(settings)
- SetBanned(settings)
- GetClusterLANIPs
- GetClusterBlacklistedIPs
- GetClusterClientIPs
- GetClusterWhiteHoleIPs
- GetClusterNATedIPs
- GetClusterNATSiteIPs
- GetClusterDebugIPs
- GetClusterDeniedIPs
- GetClusterNetwork
- GetClusterBanned
- SetClusterLANIPs(addresses)
- SetClusterBlacklistedIPs(addresses)
- SetClusterClientIPs(addresses)
- SetClusterWhiteHoleIPs(addresses)
- SetClusterNATedIPs(addresses)
- SetClusterNATSiteIPs(addresses)
- SetClusterDebugIPs(addresses)
- SetClusterDeniedIPs(addresses)
- SetClusterNetwork(settings)
- GetServerMailRules()
- Example:
my $Rules=$cli->GetServerMailRules()
|| die "Error: ".$cli->getErrMessage.", quitting";
foreach my $Rule (@$Rules) {
my $conditions=$Rule->[2],$actions=$Rule->[3];
print "\nName='$Rule->[1]' Priority=$Rule->[0]\n";
print " If\n ";
foreach my $cond (@$conditions) {
print " $_ " foreach (@$cond);
print "\n ";
}
print "Then\n ";
foreach my $actn (@$actions) {
print " $_ " foreach (@$actn);
print "\n ";
}
}
- SetServerMailRules(newRules)
- Example:
my @Rules =(
[ 5,'Size Limit',
[ ['Message Size', 'greater than', '10M] ],
[ ['Reject with', 'Your message is too big!'],
]
],
[ 5,'Save Outgoing',
[ ['Return-Path', 'is', '<*@mydomain.com>] ],
[ ['Store in', '~security/outgoing'],
]
]
);
$cli->SetServerMailRules(\@Rules)
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetClusterMailRules()
- SetClusterMailRules(newRules)
- GetClusterSignalRules()
- SetClusterSignalRules(newRules)
- GetServerSettings()
- UpdateServerSettings(newRules)
- RefreshOSData
- Example:
$cli->RefreshOSData()
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetRouterTable
- Example:
my $routerData=$cli->GetRouterTable()
|| die "Error: ".$cli->getErrMessage.", quitting";
$routerData=~s/\\e/\n/g;
print "$routerData\n";
- SetRouterTable(data)
- Example:
my $routerData=$cli->GetRouterTable()
|| die "Error: ".$cli->getErrMessage.", quitting";
$routerData.='\e' if(substr($routerData,-2,2) ne '\e');
$routerData.='<addr1>=addr1@domain.com\e';
$cli->SetRouterTable($routerData)
|| die "Error: ".$cli->getErrMessage.", quitting";
- GetRouterSettings
- Example:
if($Settings=$cli->GetRouterSettings()) {
print "The settings are:\n";
foreach (keys %$Settings) {
print " $_ = \"@$Settings{$_}\"\n";
}
} else {
die "Error: ".$cli->getErrMessage.", quitting";
}
- SetRouterSettings(settings)
- GetClusterRouterTable
- SetClusterRouterTable(data)
- GetClusterRouterSettings()
- SetClusterRouterSettings(settings)
- GetServerIntercept
- SetServerIntercept(data)
- GetClusterIntercept
- SetClusterIntercept(data)
- Route(address[,'mail|access|signal'])
- Example:
my $data=$cli->Route('user@domain.net','mail')
|| die "Error: ".$cli->getErrMessage.", quitting";
print "Module =$data->[0]\n";
print "Host =$data->[1]\n";
print "Address =$data->[2]\n";
- GetIPState(address[,'TEMP'])
- Example:
my $data=$cli->GetIPState('127.0.0.1','TEMP');
|| die "Error: ".$cli->getErrMessage.", quitting";
print "The state is: '$data'\n";
Monitoring Commands
- GetStatElement(elemName)
- Example:
my $data=$cli->GetStatElement('1.3.6.1.4.1.5678.2.1.1.1.1.10')
|| die "Error: ".$cli->getErrMessage.", quitting";
print "Incoming SMTP messages: $data\n";
- GetNextStatName(elemName)
- Example:
my $data=$cli->GetNextStatName('1.3.6.1.4.1.5678.2.1.1.1.1.10')
|| die "Error: ".$cli->getErrMessage.", quitting";
print "Next name is: $data\n";
- SetStatElement(elemName,command [,value])
- GetDialogID(signalDialogID)
- Shutdown
- Example:
$cli->Shutdown;
Statistics Commands
- GetAccountStat(account[,key])
- Example:
if($nMessages=$cli->GetAccountStat('user@company.com','MessagesReceived')) {
my $nBytes=$cli->GetAccountStat('user@company.com','BytesReceived');
print "The user had received $nMessages messages $nBytes bytes total.\n";
} else {
($cli->isSuccess) ? print "The user had received no messages.\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- ResetAccountStat(account[,key])
- Example:
$cli->ResetAccountStat('user@company.com','MessagesReceived')
|| die "Error: ".$cli->getErrMessage;
- GetDomainStat(domain[,key])
- Example:
if($nMessages=$cli->GetDomainStat('company.com','MessagesReceived')) {
my $nBytes=$cli->GetDomainStat('company.com','BytesReceived');
print "The user had received $nMessages messages $nBytes bytes total.\n";
} else {
($cli->isSuccess) ? print "The domain had received no messages.\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- ResetDomainStat(domain[,key])
- Example:
$cli->ResetDomainStat('*')
|| die "Error: ".$cli->getErrMessage;
Directory Administration Commands
- CreateDirectoryUnit(unitName,mountPoint,[shared,[remote]])
- RelocateDirectoryUnit(unitName,newMountPoint,[shared])
- DeleteDirectoryUnit(unitName,[shared])
- GetDirectoryUnit(unitName,[shared])
- SetDirectoryUnit(unitName,newSettings,[shared])
- GetDirectoryAccessRights([shared])
- SetDirectoryAccessRights(newRights,[shared])
Miscellaneous Commands
- ListCLICommands
- Example:
my $data=$cli->ListCLICommands()
|| die "Error: ".$cli->getErrMessage;
print "The commands are: ".join(', ',@$data)."\n";
- Noop
- Echo(object)
- Example:
my $data=$cli->Echo( { a=>'b', c=>['d','e'], } )
|| die "Error: ".$cli->getErrMessage;
print "The object is: ".$cli->printWords($data)."\n";
- GetVersion
- Example:
my $data=$cli->GetVersion()
|| die "Error: ".$cli->getErrMessage;
print "The version is: ".$data."\n";
- GetCurrentTime
- Example:
my $data=$cli->GetCurrentTime()
|| die "Error: ".$cli->getErrMessage;
print "The time is: ".$data."\n";
- SetLogAll(ON | OFF)
- DumpAllObjects
- TestLoop(seconds)
- Example:
my $data=$cli->TestLoop(5)
|| die "Error: ".$cli->getErrMessage;
print "The speed is ".$data." loops per second\n";
- SetTrace(facility [,ON | OFF])
- Example:
$cli->SetTrace(FileIO,"ON")
|| die "Error: ".$cli->getErrMessage;
- WriteLog(level,message)
- Example:
$cli->WriteLog(2,'my test log message')
|| die "Can't write to log: ".$cli->getErrMessage;
- ReleaseSMTPQueue(queueName)
- Example:
$cli->ReleaseSMTPQueue('mail.domain.com')
|| die "Can't release queue: ".$cli->getErrMessage;
- RejectQueueMessage(messageID [,errorText])
- Example:
$cli->RejectQueueMessage('123456','your message is rejected')
|| die "Can't reject message: ".$cli->getErrMessage;
- RejectQueueMessages(account [,errorText])
- Example:
$cli->RejectQueueMessages('user@company.com','NONDN')
|| die "Can't reject messages: ".$cli->getErrMessage;
- GetMessageQueueInfo(moduleName,queueName)
- GetCurrentController
- Example:
my $data=$cli->GetCurrentController()
|| die "Can't learn where's the cluster controller: ".$cli->getErrMessage;
print "The Controller is $data\n";
- GetTempClientIPs
- Example:
if($data=$cli->GetTempClientIPs()) {
print "The temp client IPs are: $data\n";
} else {
($cli->isSuccess) ? print "Currently there're no temp client IPs.\n"
: die "Error: ".$cli->getErrMessage.", quitting";
}
- TempBlacklistIP(IP, timeout)
- Example:
$cli->TempBlacklistIP("111.111.1.1",0);
- GetTempBlacklistedIPs
- SetTempBlacklistedIPs(IPs)
- Example:
my $data=$cli->GetTempBlacklistedIPs();
if($cli->isSuccess) {
$data .="\\e11.22.33.44-100\\e22.33.44.55-200";
$cli->SetTempBlacklistedIPs($data);
} else {
die "Error: ".$cli->getErrMessage.", quitting";
}
CommuniGate Pro Guide. Copyright © 2020, AO StalkerSoft
|