Не повезло тебе, мужик.
Это известная проблема. Если вдруг сервер зависнет, то 100% попортятся
account.info в тех ящиках, куда в момент зависания шли письма.
А тут ещё хуже.
Первым делом надо выбрать домен, в нем Domain Settings->Directory
Integration
Delete All - Insert All
Потом может пригодиться метод грубой силы, примерный скриптик:
#!/usr/bin/perl
use CLI;
use File::Copy;
my %acc;
my $CGPRO_ACCOUNTS_DIR = "/var/CommuniGate/Accounts"; my $Domain = "test.ru";
# check now the dirs with accounts
opendir(DIR, $CGPRO_ACCOUNTS_DIR) or next; while (defined (my $account_dir = readdir(DIR))) { my $account; if ($account_dir =~ /(.*)\.macnt/) { $account = $1; $acc{$account} = 0; } } #print "Domain: "; # Print the domain prompt #my $Domain = <STDIN>; # Read the domain name from standard input #chomp $Domain; # Remove \n if present
# You may need to redefine the following variable if you're connecting
not to
# the main domain. IP address is OK.
$CGServerAddress = $Domain;
print "Login (Enter for \"postmaster\@$Domain\"): ";
my $Login = <STDIN>;
chomp $Login;
if ($Login eq '') { $Login = "postmaster\@$Domain"; }
#my $Login = "postmaster\@$Domain";
print "Password: ";
my $Password = <STDIN>;
chomp $Password;
# Open TCP connection to given address port 106 (PWD, or CGPro CLI).
# Submit username and password. If login fail, the program will stop.
my $cli = new CGP::CLI( { PeerAddr => $CGServerAddress,
PeerPort => 106, login => $Login, password => $Password } )|| die "Can't login to CGPro: ".$CGP::ERR_STRING."\n";
my $Accounts=$cli->ListAccounts($Domain)
|| die "Error: ".$cli->getErrMessage.", quitting"; foreach my $UserName (keys %$Accounts) { $acc{$UserName} = 1;
foreach my $UserName (sort keys %acc) {
if ($acc{$UserName} == 0) { print "$UserName\n"; my $UserDir = "$UserName" . ".macnt"; system("mv -f $CGPRO_ACCOUNTS_DIR/$UserDir /tmp/$Userdir"); $cli->CreateAccount(accountName => $UserName) || die "Error: ". $cli->getErrMessage ." \n"; my($from, $to); $from = "/tmp/$UserDir/account.settings"; $to = "$CGPRO_ACCOUNTS_DIR/$UserDir/account.settings"; copy($from, $to); $from = "/tmp/$UserDir/INBOX.mbox"; $to = "$CGPRO_ACCOUNTS_DIR/$UserDir/INBOX.mbox"; copy($from, $to); }
$cli->Logout; Получено Tue Jun 24 11:04:59 2003
Этот архив был сгенерирован hypermail 2.1.8 : Tue 21 Feb 2006 - 03:14:24 MSK