主题: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

Hi, all.

现有的批量建立 LDAP 邮件账号的工具存在一些不方便的地方,所以特意重新开发了一个,恳请大家帮忙测试,以便大家在 0.5.0 正式版中能用上这个工具。

批量建立账号的脚本下载地址:
http://iredmail.googlecode.com/svn/trun … penLDAP.py

该脚本使用 python 编写,为的是可以直接在批量建立账号时使用中文、日文、韩文等非 ASCII 字符(例如姓名等信息),而原先的 shell 脚本则不行。

使用方法:

- 先安装 Python。

  装完 iRedMail 后这个包都会被安装。没有安装的用户可以使用以下命令进行安装:

  RHEL/CentOS: # yum install python
  Debian/Ubuntu: # apt-get install python

- 安装 python-ldap 模块

  RHEL/CentOS: # yum install python-ldap
  Debian/Ubuntu: # sudo apt-get install python-ldap

- 将要导入的账号以 CSV 格式整理到某个文件里,例如:users.csv,该文件必须以 utf-8 编码保存,否则将导致无法导入数据。

  直接执行我们提供的批量建立账号的脚本会给出该文件的格式示例:

  # python create_mail_user_OpenLDAP.py

- 执行脚本以生成适合导入 LDAP 的 LDIF 文件格式。

  默认生成的文件名是 users.csv.ldif,也就是以你的 CSV 文件为基本名,加个 .ldif 后缀。

- 使用 ldapadd 命令或者 phpLDAPadmin 实际导入账号。

注意:目前只支持在 CSV 里保存 5 个信息:

    [*]域名
    [*]用户名
    [*]密码
    [*]姓名
    [*]磁盘限额

如果您需要支持更多的信息,请回复帖子,并将具体情况说清楚。

感谢大家的支持和反馈。:loveliness:

回复: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

測過了,很不錯,用試算表編輯好後,用這個工具轉換成ldif格式,再用系統附的phpLDAPadmin就可以一次建立大量帳號了,對第一次建大量帳號很有幫助的。

不過發現比較特別的地方是帳號建好後的
homeDirectory 會長成像 /home/vmail/v/vi/mail.exsample.com.cn/p/ph/phu/user/
mailMessageStore 會長成像 v/vi/mail.exsample.com.cn/p/ph/phu/user/
這是因為安全考量?
之前的scripts建立起來的帳號
homeDirectory 會長成像 /home/vmail
mailMessageStore 會長成像 mail.exsample.com.cn/user/

這個工具目前只支持在 CSV 里保存 5 个信息:
    * 域名
    * 用户名
    * 密码
    * 姓名
    * 磁盘限额
建議將加上群組(memberOfGroup)也加上去,可以設成多群組更好(預設是all,可以有一個規則(如逗號)加上第二個群組,第三個群組,依此類推),這樣就可以一次到位將所有電子郵件相關資料建好。

以這個工具看來,應該已經可以滿足企業的需求了。

[ 本帖最后由 lingoojams 于 2009-6-17 17:43 编辑 ]

回复: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

不過發現比較特別的地方是帳號建好後的
homeDirectory 會長成像 /home/vmail/v/vi/mail.exsample.com.cn/p/ph/phu/user/
mailMessageStore 會長成像 v/vi/mail.exsample.com.cn/p/ph/phu/user/
這是因為安全考量?


嘿嘿,这个被你发现了。

这个是从 0.5.0-rc1 之后才修改的 maildir 路径,并不是基于安全考虑,而是基于性能考虑。对于服务大量邮件用户的系统,这样的 maildir 设计,会避免同一个目录下堆放过多的目录/文件,内核在查找文件时会因文件过多而导致查找文件变慢(也就是索引,index)。

所以在 0.5.0-rc2 中将会默认使用这种 maildir 路径设计。

建議將加上群組(memberOfGroup)也加上去,可以設成多群組更好(預設是all,可以有一個規則(如逗號)加上第二個群組,第三個群組,依此類推),這樣就可以一次到位將所有電子郵件相關資料建好。


这个我还真忘了,多谢提醒。后面的修正里一定会加上。

其它有啥建议或者发现啥问题么?

回复: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

已经在最新的版本中加入了对 group 的支持。下载地址同第一贴里的链接。

回复: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

組的部份也測試了(試了一次建了兩個群組的,交錯建立),目前沒測到問題,不過有點小建議,工具將檔案轉換為ldif檔案後,可以吐一個"translate to ldap file compelted!! file name is xxx.xxx.ldif "之類的訊息嗎?

因為現在轉換的過程會吐出轉換的資料(這樣可以知道有進行轉換?)不過轉換完就跳出來,也不知道是因為做完了 還是發生問題跳出來,所以有訊息會更清楚一點,當然沒有也行,因為已經很好用了。

回复: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

不過有點小建議,工具將檔案轉換為ldif檔案後,可以吐一個"translate to ldap file compelted!! file name is xxx.xxx.ldif "之類的訊息嗎?


OK,这个会加上的。

回复: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

测试后发现,有中文人名的CSV转换成LDIF后,无法导入啊

回复: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

贴一下具体的错误信息?

回复: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

我是用phpldapadmin导入的:

LDIF text import
不能增加对象: mail=huang@aa.cn,ou=Users,domainName=aaa.cn,o=domains,dc=aaa,dc=com
LDAP said: LDAP_INVALID_SYNTAX
An invalid attribute value was specified.

同样的CSV,把里面的中文改成英文就OK,
有中文的CSV经过脚本工具装换成LDIF后,查看LDIF,里面的CN是乱码

回复: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

测试后发现,有中文人名的CSV转换成LDIF后,无法导入啊
---> 應該不會才對喔,我是過簡體 繁體 混用 都是正常的(我的csv是用openoffice存的)
(你先看看你的csv會不會在csv就已經是亂碼了,所以導入當然會有問題,另外存檔時字元不要用' ' or " " 符號區隔,只有空白 跟 逗號 轉換應該會很順利,有' or "就把他清澄空白吧)

或許Bibby也可以考慮,除了濾掉 空白符號, ' & " 符號也濾掉 這樣會更好用 (因為有些程式存的csv檔真的會加上"符號)

回复: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

原来楼上是用openoffice写的,那我可能找出问题所在了。

openoffice写的默认保存的是utf-8编码,正是openldap所要的;

我是用XP的excel写的,生成的文档应该是GB3212编码;

我用openoffice试了OK。

请教版主,是这个原因吗?

回复: 请大家帮忙测试批量建立 LDAP 邮件账号的工具

CSV 文件确实必须用 utf-8 编码保存,这点忘了说明了,抱歉。

to @lingoojams:会考虑加一些过滤操作。

感谢各位的反馈。:loveliness: