Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37038681
en ru br
Репозитории ALT
S:3.2.8-alt1
5.1: 2.4.12-alt0.M51.1
4.1: 2.3.13-alt1.M41.1
4.0: 2.3.16-alt0.M40.1
+backports:2.3.11-alt0.M40.1
3.0: 2.2.12-alt3
www.altlinux.org/Changes

Группа :: Система/Серверы
Пакет: cyrus-imapd

 Главная   Изменения   Спек   Патчи   Исходники   Загрузить   Gear   Bugs and FR  Repocop 

#!/usr/bin/perl -w
#
# imapcreate: create IMAP mailboxes with quotas
# Reads user names from standard input.

use Getopt::Long;
use Cyrus::IMAP::Admin;

sub usage {
print "imapcreate - create IMAP mailboxes with quotas\n";
print " usage:\n";
print " imapcreate [-u user] [-p pass] [-q quota] [-t partition:list]\n";
print " <server>\n";
print "\n";
print " example: \n";
print " imapcreate -u cyradm -q 50000 -t p1:p2 mail.testing.umanitoba.ca\n";
print "\n";
exit 0;
}

my $debug = 1; # XXX
my $user;
my $pass;
my $quota;
my @part;
GetOptions("u|user=s" => \$user, "p|pass=s" => \$pass, "q|quota=i" => \$quota,
"t|part=s" => \@part);
@part = split(/:/, join(':', @part));
push @part, 'default' unless @part;
my $pn = 0;

$server = shift(@ARGV) if (@ARGV);

usage unless $server;

# Authenticate
my $cyrus = Cyrus::IMAP::Admin->new($server);
$cyrus->authenticate(-mechanism => 'login', -user => $user,
-password => $pass);
die $cyrus->error if $cyrus->error;

# For all users
while (<>) {
chomp;
my $mbox = 'user.' . $_;

# Select the partition
my $pt = $part[$pn];
$pn += 1;
$pn = 0 unless $pn < @part;

# Create the account
print STDERR "Creating $mbox on $pt\n" if $debug;
if ($pt eq 'default') {
$cyrus->createmailbox($mbox);
}
else {
$cyrus->createmailbox($mbox, $pt);
}
warn $cyrus->error if $cyrus->error;

# Set the quota
if ($quota) {
print STDERR "Setting quota for $mbox to $quota\n" if $debug;
$cyrus->setquota($mbox, 'STORAGE', $quota);
warn $cyrus->error if $cyrus->error;
}
}

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin