一段ADSI和EXCHANGE结合的示范代码
来源:互联网 发布:windos7优化设置 编辑:程序博客网 时间:2024/06/06 19:01
在独孤九剑兄的帮助下,完成了这段代码
包括NT用户的建立,EXCHANGE邮箱的建立,两者的结合,权限的设置
本代码在nt4.0+sp6+exchange5.5+adsi2.5下运行通过
建立以后的用户可以直接收发信件,是一个简化版本的WEB MAIL ACCESS
adsi_exchange.asp
-----------------------------------------------------------------------
<%
Set sid = CreateObject("ADsSID")
Set sec = CreateObject("ADsSecurity")
Set ace = CreateObject("AccessControlEntry")
'----------------------------------------------------------------------------
'--- 如果没有安装ADSI2.5的安全库要手工定义以下参数
'-----------------------------------------------------------------------------
Const ADS_SID_HEXSTRING = 1
Const ADS_SID_WINNT_PATH = 5
Const ADS_RIGHT_EXCH_MODIFY_USER_ATT = &H2
Const ADS_RIGHT_EXCH_MAIL_SEND_AS = &H8
Const ADS_RIGHT_EXCH_MAIL_RECEIVE_AS = &H10
'-------------------------------------------------------
'-----创建邮箱步骤----------------------
'--------------------------------------------------------
'---- 基本信息
server1 = "114DOMAINSERVER"
Org = "114ONLINE"
Site = "EXCHANGE"
domain = "EXCHANGE"
userName = "liuoo"
password = "43444"
'--- 邮箱信息 -----
strDisplayName = "rtrtrt"
strFirstName = "gfgf"
strLastName = "fgfgfg"
strAlias = userName
strMTA = "cn=Microsoft MTA,cn=" & server1 & ",cn=Servers,cn=Configuration,ou=" & Site & ",o=" & Org
strMDB = "cn=Microsoft Private MDB,cn=" & server1 & ",cn=Servers,cn=Configuration,ou=" & Site & ",o=" & Org
strSMTPAddr = "ewwe@114online.com"
'------ 建立一个nt用户
Set dom = GetObject("WinNT://" & domain)
Set usr = dom.Create("user", userName)
'On Error Resume Next
usr.SetInfo
'If Err.Number <> 0 Then
' Response.Write "111"
' Response.Write Err.Description
' Response.End
'End If
usr.SetPassword password
'--- 创建邮箱
ADsPath = "LDAP://" + server1
ADsPath = ADsPath + "/cn=Recipients,OU="
ADsPath = ADsPath + Site
ADsPath = ADsPath + ",O="
ADsPath = ADsPath + Org
Set objCont = GetObject(ADsPath)
'Create a new MailBox
Set mailBox = objCont.Create("organizationalPerson", "cn=" & strAlias)
mailBox.Put "mailPreferenceOption", 0
mailBox.Put "givenName", strFirstName
mailBox.Put "sn", strLastName
mailBox.Put "cn", strDisplayName
mailBox.Put "uid", strAlias
mailBox.Put "Home-MTA", strMTA
mailBox.Put "Home-MDB", strMDB
mailBox.Put "mail", strSMTPAddr
mailBox.Put "MAPI-Recipient", True
mailBox.Put "rfc822Mailbox", strSMTPAddr
'--------------------------------------------------------
' 与nt用户联系
'---------------------------------------------------------
sid.SetAs ADS_SID_WINNT_PATH, "WinNT://" & domain & "/" & strAlias & ",user"
sidHex = sid.GetAs(ADS_SID_HEXSTRING)
mailBox.Put "Assoc-NT-Account", sidHex
' 完成设置
mailBox.SetInfo
'-------------------------------------------------
'更改安全设置
'-------------------------------------------------
Set sd = sec.GetSecurityDescriptor(mailBox.ADsPath)
Set dacl = sd.DiscretionaryAcl
ace.Trustee = domain & "/" & strAlias
ace.AccessMask = ADS_RIGHT_EXCH_MODIFY_USER_ATT Or ADS_RIGHT_EXCH_MAIL_SEND_AS Or ADS_RIGHT_EXCH_MAIL_RECEIVE_AS
ace.AceType = ADS_ACETYPE_ACCESS_ALLOWED
dacl.AddAce ace
sd.DiscretionaryAcl = dacl
sec.SetSecurityDescriptor sd
response.write "successful"
%>
------------------------------------------------------------------------
请注意权限的设置
- 一段ADSI和EXCHANGE结合的示范代码
- 一段通过OLE将Notes View中的内容导入Excel的示范代码
- lucene的代码示范
- 简单的数据库连接代码示范!!
- 队列的示范和调试
- 一段显示星期和年月日的代码
- 一段删除文件和文件夹的代码
- 一段测试NSArray和NSDictionary的代码
- notify和notifyAll的一段代码分析
- 一段代码的感情色彩和心理活动
- 实现壁纸更换的示范代码
- ADSI控制目录权限和站点的应用
- 一段不可思议的代码
- 一段写晕掉的代码
- 一段好玩的代码
- 一段有趣的代码
- 一段漏洞百出的代码
- 一段弃暗投明的代码
- ADSI及其在WEB上的应用
- 使用ADSI、ASP和一对魔术戏法自动地创立一个虚拟目录
- 使用ADSI开发NT目录服务会出现的一些问题及解决办法
- 一些有关ADSI技术的介绍
- ADSI使用ASP来实现通用的对数据库控制编程
- 一段ADSI和EXCHANGE结合的示范代码
- ADSI,使用ASP来完成NT管理
- ASP创建用户,目录和站点
- 一个大学教授的精彩演讲
- 堆栈的部分基本操作
- 用TC2.0写俄罗斯方块---cnasm
- Doom启示录(一)---李乃峰所崇拜之 两个约翰!
- java的正则表达式(Pattern and Matcher)
- Doom启示录(二)------李乃峰所崇拜之 两个约翰!