Linux论坛's Archiver

《开源》旗舰电子杂志2009年第1期火热下载!

guohaijiao 发表于 2008-8-18 13:15

如何使用cyradm管理工具为用户批量创建邮件信箱

使用cyradm管理工具为用户创建邮件信箱的步骤如下:
/usr/lib/cyrus-imapd/cyradm -u cyrus localhost

localhost.localdomain> createmailbox user.steven
localhost.localdomain> createmailbox user.steven.Send
localhost.localdomain> createmailbox user.steven.Trash
localhost.localdomain> createmailbox user.steven.Drafts

c、为用户邮箱设置配额
localhost.localdomain> setquota user.steven 5210
查看配额
localhost.localdomain> listquota user.steven

d、为用户信箱设localhost.localdomain> setacl user.steven cyrus all
localhost.localdomain> listacl user.steven


退出localhost.localdomain,在命令行下,建用户,执行以下命令
        useradd(steven)
        passwd(steven)


现在的我需要创建100个邮箱帐户,哪位高人能帮忙想个好的办法,要不然我得useradd100次呢

linuxpk 发表于 2008-8-18 14:09

我建议写个脚本

给你一个例子:

for i in {1..100}
do
  echo $i
done

guohaijiao 发表于 2008-8-18 15:10

回复 2楼 linuxpk 的帖子

能具体写下吗,伪代码就可以了,testuser1---testuser100,用户名和密码一样就可以

ppt 发表于 2008-11-12 14:51

使用perl  最为容易啦

程序如下

#!/usr/bin/perl -w
#

use Cyrus::IMAP::Admin;
my $cyrus_server = "localhost";
my $cyrus_user = "cyrus";
my $cyrus_pass = "secret";
# 500 Megs
my $quota_size = "5000000";
my $mechanism = "login";

sub
  createMailbox
{

  my ($user, $subfolder) = @_;

  my
    $cyrus = Cyrus::IMAP::Admin->new ($cyrus_server);
  $cyrus->
  authenticate ($mechanism, 'imap', '', $cyrus_user, '0', '10000',
                $cyrus_pass);

  if ($subfolder eq "INBOX")
    {
      $mailbox = "user.".$user;
    }
  else
    {
      $mailbox = "user.".$user.".".$subfolder;
    }

  $cyrus->create ($mailbox);
  if ($cyrus->error)
    {
      print
        STDERR
        "Error: ",
        $mailbox,
        " ",
        $cyrus->
        error,
        "\n";
    }
  else
    {
      print "Created Mailbox: $mailbox \n";
    }

}

sub
  setQuota
{

  my ($user) = @_;

  my
    $cyrus = Cyrus::IMAP::Admin->new ($cyrus_server);
  $cyrus->
  authenticate ($mechanism, 'imap', '', $cyrus_user, '0', '10000',
                $cyrus_pass);

  $mailbox = "user.".$user;
  $cyrus->
  setquota ($mailbox, "STORAGE", $quota_size);
  if ($cyrus->error)
    {
      print
        STDERR
        "Error: ",
        $mailbox,
        " ",
        $cyrus->
        error,
        "\n";
    }
  else
    {
      print "Setting Quota: $mailbox at $quota_size \n";
    }

}

#createMailbox($newuser,'Junk');
#setQuota($newuser);

-------------------------------
大体的程序都在这里了,很容易就可以处理你的问题啦。

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.