Подскажите как переписать кусочек чтобы тереть вначале старое правило Spam у акаунта или записать поверх старого новое.
Или скриптик бы какой чтобы все правила потереть на всех доменах и всех акаунтах.
Заранее спасибо тем, кто откликнется.
---
#!/usr/bin/perl -w
use CLI;
my $cli = new CGP::CLI( { PeerAddr => 'server.ru',
PeerPort => 106, login => 'postmaster', password => 'postmaster' } ) || die "Can't login to CGPro: ".$CGP::ERR_STRING."\n";
my $domList=$cli->ListDomains() || die "can't list domains";
foreach $domain (sort @$domList) {
$AccountList = $cli->ListAccounts($domain)
|| die "Error: ".$cli->getErrMessage.", quitting";foreach(keys %$AccountList) {
my $Rules=$cli->GetAccountRules($address)
|| die "Error: ".$cli->getErrMessage.", quitting";
$foundrule = 0;
foreach my $Rule (@$Rules) { if ($Rule->[1] eq 'Spam') {$foundrule = 1;} }
unless ($foundrule) {
$filter_rule = ( [5,'Spam',[["Subject",'is',"*Spam*"]] ,[["Store in",'Spam'],["Discard"]]] ); @NewRules = (@$Rules, $filter_rule); print " Creating Spam Filter Rule!\n"; $cli->SetAccountRules($address,\@NewRules) || die "Error: ".$cli->getErrMessage.", quitting";}
my $Boxes= $cli->ListMailboxes(accountName=>$address)
|| die "Error: ".$cli->getErrMessage.", quitting";
$foundbox = 0;
foreach (sort keys %$Boxes) { if ($_ eq "Spam") { $foundbox = 1;} }
unless ($foundbox) {
print " Creating Spam box\n"; $cli->CreateMailbox($address,'Spam') || die "Error: ".$cli->getErrMessage.", quitting";}
$cli->Logout;
---
Получено Tue Mar 18 08:39:41 2008
Этот архив был сгенерирован hypermail 2.1.8 : Tue 18 Mar 2008 - 12:14:18 MSK