首页 » 邮件技术 » Zimbra 8.x 批量创建导入账户

Zimbra 8.x 批量创建导入账户

 

在Zimbra WebAdmin界面中,添加账户只能一个一个添加,要想批量导入多个账户就要用到Zimbra自带的zmprov命令了。

zmprov加上createAccount参数可以创建单个新用户(例:创建新用户user1@corptest.com,密码为password,显示名称为user1)

[zimbra@z ~]$ zmprov createAccount user1@corptest.com password displayName 'user1'

批量创建账户的原理就是,把csv/txt文件中的用户信息批量生成为多条zmprov命令,再一次性执行。

1、以root身份登录服务器,先vi创建一个perl脚本csvtozmprov,用作把csv文件内容转换为zmprov命令,脚本内容如下:

[root@z opt]# cat csvtozmprov
#!/usr/bin/perl
 
while (<>) {
       chomp;
 
       # CHANGE ME: To the actual fields you use in your CSV file
       my ($email, $password, $name) = split(/\,/, $_, 3);
         
       my ($uid, $domain) = split(/@/, $email, 2);
 
       print qq{ca $uid\@$domain $password displayName "$name"\n};
       #print qq{\n};
}

2、准备一个csv/txt的账户列表信息,包含3列,分别为邮箱地址、密码、显示名称,每列以英文逗号分隔;并上传至服务器。

[root@z opt]# cat user_list.txt 
user2@corptest.com,User2018,user2
user3@corptest.com,User2018,user3
user4@corptest.com,User2018,user4
user5@corptest.com,User2018,user5
user6@corptest.com,User2018,user6

3、用perl脚本csvtozmprov转换csv/txt文件为zmprov命令,并输出保存到mydata.zmp

[root@z opt]# perl csvtozmprov user_list.txt > mydata.zmp
[root@z opt]# cat mydata.zmp 
ca user2@corptest.com User2018 displayName "user2"
ca user3@corptest.com User2018 displayName "user3"
ca user4@corptest.com User2018 displayName "user4"
ca user5@corptest.com User2018 displayName "user5"
ca user6@corptest.com User2018 displayName "user6"

可以看到mydata.zmp文件中,已经有多条创建新用户的zmprov命令。

4、用zmprov命令,批量执行mydata.zmp中创建新用户的命令,实现批量导入账户

[root@z opt]# cat mydata.zmp | su - zimbra -c zmprov
prov> ca user2@corptest.com User2018 displayName "user2"
f1bb8f96-fc38-4583-a732-9e007d94b27a
prov> ca user3@corptest.com User2018 displayName "user3"
d39a4599-16cb-4444-b2b3-14bee7a5cd8c
prov> ca user4@corptest.com User2018 displayName "user4"
d9fa24c7-7cc4-4d83-be1c-ab05844954be
prov> ca user5@corptest.com User2018 displayName "user5"
6617c9ed-deb2-4074-a85a-a8cc72d30377
prov> ca user6@corptest.com User2018 displayName "user6"
cb932e3e-6217-4eb3-b141-1c226059f050

后记:

1、也可以把第3和第4步合并成一条命令执行:

[root@z opt]# perl csvtozmprov user_list.txt > mydata.zmp && cat mydata.zmp | su - zimbra -c zmprov

2、第2步中,准备csv/txt文件的时候,一定不要留空行/空格,显示名称如果为中文,还请先检查自己的服务器是否有安装支持中文语言包,否则导入后显示名称会乱码

3、在zmprov命令中ca是createAccount的简写

原文链接:Zimbra 8.x 批量创建导入账户,转载请注明来源!

2