创建邮箱,情况就复杂了,因为你可能采用不同的电子邮件服务器.有些把邮箱信息放在文本文件里,有些把信息放在注册表
里,有些提供ADSI接口,所以,得根据具体情况来定.
对于用户邮箱信息放在文本文件里的,可以直接操作文本文件,下面是一段写文本文件的代码示例:
Dim fs
Dim fw
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set fw = fs.CreateTextFile("c:\users.dat")
fw.WriteLine "user1,user1@abc.com,,,"
对于用户信息放在注册表里的,可以用WSH直接操作注册表,从而完成邮箱的创建.比如IMAIL,他的用户信息就放在
HKEY_localmacine\SoftWare\IPswitch\domain\下的.唯一麻烦的邮箱的初始口令,我们不知道他的加密算法.所以只能先手工
创建一个邮箱,然后采用一个固定的口令,看他加密后是多少,我们的脚本在创建别的邮箱时也使用它.这样的问题是,我们必须
告诉用户,他们必须在今后修改口令,否则是不安全的.
Exchange Server提供ADSI接口,创建邮箱就方便了.而且他的邮箱可以与NT的域用户同步.下面是一段示例代码:
objContainer = GetObject("LDAP://SERVERNAME/o=OrgName/ou=SiteName/cn=Recipients")
objUser = objContainer.Create("Remote-Address", "cn=CustRecip")
objUser.cn = "CustRecip"
objUser.Put "Target-Address", "SMTP:CustRecip@msn.com"
objUser.Put "Internet-Encoding", 1310720objUser.UID = "CustRecip"
objUser.textEncodedORaddress = "c=US;a= ;p=DOIT;o=CDO;s=CustRecip;"
objUser.Mail = "CustRecip@msn.com"
objUser.Put "otherMailbox", "MS:OrgName/SiteName/CustRecip"
objUser.Put "Replication-Sensitivity", 20
objUser.Put "MAPI-Recipient", False
objUser.SetInfo
WScript.Echo objUser.cn
For i = 1 ToobjUser.PropertyCount
Set vProp = objUser.Next
WScript.Echo vProp.Name
Next
注:由于我现在没有Exchange Server做实验,所以上面这段代码未曾测试过,如果大家有问题,请到他的原出处寻求解决.
这段脚本,稍加修改,也可以用在ASP中.
|