如何使用 php 批量创建/禁用/删除 zimbra 帐户?

如何使用 php 批量创建/禁用/删除 zimbra 帐户?

我们为会员提供 zimbra 邮件服务器,所有会员都有电子邮件地址,我们会将电子邮件地址提供给他们,以便他们使用我们的服务,例如登录无线网络等。会员资格是临时的。每六个月我们都会迎来新会员和离职会员。目前,我们已经创建了当前会员,并从 .csv 文件上传了他们的信息。六个月后,我们将不得不禁用当前邮件帐户并添加新帐户。

我想做的是使用 PHP 完成这些任务。我找到了一些示例Zimbra 的维基页面。他们展示了如何使用 Perl 创建从 .csv 文件读取的帐户。

#!/usr/bin/perl

# Lookup the valid COS (Class of Service) ID in the interface or like this
my $cosid = `su - zimbra -c 'zmprov gc Default |grep zimbraId:'`;
$cosid =~ s/zimbraId:\s*|\s*$//g;

while (<>) {
       chomp;

       # CHANGE ME: To the actual fields you use in your CSV file
       my ($email, $password, $first, $last) = split(/\,/, $_, 4);

       my ($uid, $domain) = split(/@/, $email, 2);

       print qq{ca $uid\@$domain $password\n};
       print qq{ma $uid\@$domain zimbraCOSid "$cosid"\n};
       print qq{ma $uid\@$domain givenName "$first"\n};
       print qq{ma $uid\@$domain sn "$last"\n};
       print qq{ma $uid\@$domain cn "$uid"\n};
       print qq{ma $uid\@$domain displayName "$first $last"\n};
       print qq{ma $uid\@$domain zimbraPasswordMustChange TRUE\n};
       print qq{\n};
}

如何使用 PHP 文件运行这些 zimbra 命令?我想从 .csv 文件中读取列表并在服务器上创建和/或禁用帐户。

答案1

几年前,我们为 6.0.8 版 Zimbra 帐户管理开发了自己的界面。当时,soap 支持文档并不完善,需要反复试验。

Google code 和 GIThub 上有一些可用的 PHP 类。

http://www.plymouth.edu/webapp/code/zimbra.class.phps或者https://github.com/libersoft/zcs-php

答案2

Zimbra:创建 1000 个用户并以批处理模式自动将其添加到 Zimbra

您好,在我使用 Zimbra 的实验室中,我多次需要创建随机用户,并且他们有一个清晰的帐户,以执行迁移或执行备份等。显然,手动创建 10、50 或 1000 个用户可能会花费我们很长时间,而且不会带来利润或效率,所以今天我在这里给您留下这个建议,希望对您有所帮助:

我们要做的第一件事是使用用户 zimbra 进入 /var/tmp

su - zimbra
cd /var/tmp

然后我们将创建一个名为 usercreation.sh 的文件

touch usercreation.sh

在这个脚本中我们将介绍以下内容,请根据您的域进行调整,并根据需要进行一些自定义:

vi usercreation.sh

#!/bin/bash
# Zimbra Collaboration user creation
cd /var/tmp
x=0
while [ $x -lt 1000 ]
do
echo "ca [email protected] 'Password$' sn 'Demo User${x}' givenName 'Demo' zimbraPrefFromDisplay 'Demo User${x}'" >> userlist.zmp
x=`expr $x + 1`
done

我们将添加权限以便能够执行它

chown zimbra:zimbra /var/tmp/user*
chmod 777 /var/tmp/user*

最后我们启动它,它需要几秒钟才能完全运行

./usercreation.sh

现在我们可以查看 userlist.zmp 文件的内容,例如最后几行:

ca [email protected] 'Password$' sn 'Demo User995' givenName 'Demo' zimbraPrefFromDisplay 'Demo User995'
ca [email protected] 'Password$' sn 'Demo User996' givenName 'Demo' zimbraPrefFromDisplay 'Demo User996'
ca [email protected] 'Password$' sn 'Demo User997' givenName 'Demo' zimbraPrefFromDisplay 'Demo User997'
ca [email protected] 'Password$' sn 'Demo User998' givenName 'Demo' zimbraPrefFromDisplay 'Demo User998'
ca [email protected] 'Password$' sn 'Demo User999' givenName 'Demo' zimbraPrefFromDisplay 'Demo User999'

最后,我们将以 zimbra 用户身份启动命令,将包含所有账户的文件导入 Zimbra

zmprov -f userlist.zmp

此过程将需要几秒钟到几分钟,具体取决于要导入的账户数量:

prov> b99e183e-02e1-455b-9140-75957382a720
prov> c25f464d-7a5d-4316-ab7d-123b1949ebff

參考文獻:https://www.jorgedelacruz.es/2016/07/19/zimbra-crear-1000-usuarios-y-anadirlos-zimbra-de-manera-automatica-en-batch-mode/

相关内容