The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Создание Cyrus-mailbox в скрипте"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Создание Cyrus-mailbox в скрипте"
Сообщение от Nightman emailИскать по авторуВ закладки on 13-Дек-02, 14:35  (MSK)
Есть более 2000 пользователей совершенное невозможно создавать mailboxы через cyradm. Есть ли какие нибудь идеи по этому поводу.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Создание Cyrus-mailbox в скрипте"
Сообщение от Andy Nik Искать по авторуВ закладки on 13-Дек-02, 20:10  (MSK)
>Есть более 2000 пользователей совершенное невозможно создавать mailboxы через cyradm. Есть ли
>какие нибудь идеи по этому поводу.

Вот такое чудо есть в загажнике.

#!/usr/local/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;
    }
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Создание Cyrus-mailbox в скрипте"
Сообщение от Nightman emailИскать по авторуВ закладки on 14-Дек-02, 06:49  (MSK)
>>Есть более 2000 пользователей совершенное невозможно создавать mailboxы через cyradm. Есть ли
>>какие нибудь идеи по этому поводу.
>
>Вот такое чудо есть в загажнике.
>
>#!/usr/local/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;
>    }
>}
>

Спосибо тебе большое добрый человек!
Что то я сразу то глаза не разул на перловый модуль..
Спосибо!

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру