Подскажите как переписать кусочек чтобы тереть вначале старое правило 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